зеркало из https://github.com/mozilla/gecko-dev.git
131 строка
3.6 KiB
Bash
Executable File
131 строка
3.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
# This script installs and configures Mercurial.
|
|
|
|
set -e
|
|
|
|
# Detect OS.
|
|
if [ -f /etc/lsb-release ]; then
|
|
# Disabled so linting works on Mac
|
|
# shellcheck disable=SC1091
|
|
. /etc/lsb-release
|
|
|
|
if [ "${DISTRIB_ID}" = "Ubuntu" ] && [[ "${DISTRIB_RELEASE}" = "16.04" || "${DISTRIB_RELEASE}" = "17.10" || "${DISTRIB_RELEASE}" = "18.04" ]]
|
|
then
|
|
HG_DEB=1
|
|
HG_DIGEST=54a215232a340139707a968b58943c2903a8297f0da32f96622d1acab47de6013a5b96d2ca4ba241b1fee142b4098a6cdd236b308a1657c31f42807d7385d327
|
|
HG_SIZE=278440
|
|
HG_FILENAME=mercurial_4.8.1_amd64.deb
|
|
|
|
HG_COMMON_DIGEST=5577fec8d0f6643d17751b3f6be76b0c2bb888ae1920a8b085245e05110e3d5cfe1c4e9d51e334ab0dd0865fe553c63c704e72852e00b71eb668980cb6b33fa4
|
|
HG_COMMON_SIZE=2439436
|
|
HG_COMMON_FILENAME=mercurial-common_4.8.1_all.deb
|
|
elif [ "${DISTRIB_ID}" = "Ubuntu" ] && [ "${DISTRIB_RELEASE}" = "12.04" ]
|
|
then
|
|
echo "Ubuntu 12.04 not supported"
|
|
exit 1
|
|
fi
|
|
|
|
CERT_PATH=/etc/ssl/certs/ca-certificates.crt
|
|
|
|
elif [ -f /etc/os-release ]; then
|
|
# Disabled so linting works on Mac
|
|
# shellcheck disable=SC1091
|
|
. /etc/os-release
|
|
|
|
if [ "${ID}" = "debian" ]; then
|
|
if [ -f /usr/bin/pip2 ]; then
|
|
PIP_PATH=/usr/bin/pip2
|
|
elif [ -f /usr/bin/pip ]; then
|
|
# Versions of debian that don't have pip2 have pip pointing to the python2 version.
|
|
PIP_PATH=/usr/bin/pip
|
|
else
|
|
echo "We currently require Python 2.7 and pip to run Mercurial"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "Unsupported debian-like system with ID '${ID}' and VERSION_ID '${VERSION_ID}'"
|
|
exit 1
|
|
fi
|
|
|
|
CERT_PATH=/etc/ssl/certs/ca-certificates.crt
|
|
|
|
elif [ -f /etc/centos-release ]; then
|
|
CENTOS_VERSION="$(rpm -q --queryformat '%{VERSION}' centos-release)"
|
|
if [ "${CENTOS_VERSION}" = "6" ]; then
|
|
if [ -f /usr/bin/pip2.7 ]; then
|
|
PIP_PATH=/usr/bin/pip2.7
|
|
else
|
|
echo "We currently require Python 2.7 and /usr/bin/pip2.7 to run Mercurial"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "Unsupported CentOS version: ${CENTOS_VERSION}"
|
|
exit 1
|
|
fi
|
|
|
|
CERT_PATH=/etc/ssl/certs/ca-bundle.crt
|
|
fi
|
|
|
|
if [ -n "${HG_DEB}" ]; then
|
|
tooltool_fetch <<EOF
|
|
[
|
|
{
|
|
"size": ${HG_SIZE},
|
|
"digest": "${HG_DIGEST}",
|
|
"algorithm": "sha512",
|
|
"filename": "${HG_FILENAME}"
|
|
},
|
|
{
|
|
"size": ${HG_COMMON_SIZE},
|
|
"digest": "${HG_COMMON_DIGEST}",
|
|
"algorithm": "sha512",
|
|
"filename": "${HG_COMMON_FILENAME}"
|
|
}
|
|
]
|
|
EOF
|
|
|
|
dpkg -i --auto-deconfigure ${HG_COMMON_FILENAME} ${HG_FILENAME}
|
|
elif [ -n "${HG_RPM}" ]; then
|
|
tooltool_fetch <<EOF
|
|
[
|
|
{
|
|
"size": ${HG_SIZE},
|
|
"digest": "${HG_DIGEST}",
|
|
"algorithm": "sha512",
|
|
"filename": "${HG_FILENAME}"
|
|
}
|
|
]
|
|
EOF
|
|
|
|
rpm -i ${HG_FILENAME}
|
|
elif [ -n "${PIP_PATH}" ]; then
|
|
tooltool_fetch <<EOF
|
|
[
|
|
{
|
|
"size": 6869733,
|
|
"digest": "a4485c22f9bb0bb752bf42941f613cb3542c66cbec5d7d49be2090ac544f5dca0f476e4535a56e3f4f4f5fc02fb12739e6d1c7b407264fc2ba4b19b0230b9f93",
|
|
"algorithm": "sha512",
|
|
"filename": "mercurial-4.8.1.tar.gz"
|
|
}
|
|
]
|
|
EOF
|
|
|
|
${PIP_PATH} install mercurial-4.8.1.tar.gz
|
|
else
|
|
echo "Do not know how to install Mercurial on this OS"
|
|
exit 1
|
|
fi
|
|
|
|
chmod 644 /usr/local/mercurial/robustcheckout.py
|
|
|
|
cat >/etc/mercurial/hgrc.d/cacerts.rc <<EOF
|
|
[web]
|
|
cacerts = ${CERT_PATH}
|
|
EOF
|
|
|
|
chmod 644 /etc/mercurial/hgrc.d/cacerts.rc
|