add arm64/armhf for 18.04, replace git{,-lfs} (#51)

This commit is contained in:
Ryan
2022-03-05 04:22:34 +01:00
committed by GitHub
parent 664778dd40
commit 343ae52a8b
11 changed files with 255 additions and 91 deletions
+85
View File
@@ -0,0 +1,85 @@
#!/bin/bash -e
################################################################################
## File: etc-environment.sh
## Desc: Helper functions for source and modify /etc/environment
################################################################################
# NB: sed expression use '%' as a delimiter in order to simplify handling
# values containing slashes (i.e. directory path)
# The values containing '%' will break the functions
function getEtcEnvironmentVariable {
variable_name="$1"
# remove `variable_name=` and possible quotes from the line
grep "^${variable_name}=" /etc/environment |sed -E "s%^${variable_name}=\"?([^\"]+)\"?.*$%\1%"
}
function addEtcEnvironmentVariable {
variable_name="$1"
variable_value="$2"
echo "$variable_name=$variable_value" | sudo tee -a /etc/environment
}
function replaceEtcEnvironmentVariable {
variable_name="$1"
variable_value="$2"
# modify /etc/environemnt in place by replacing a string that begins with variable_name
sudo sed -i -e "s%^${variable_name}=.*$%${variable_name}=\"${variable_value}\"%" /etc/environment
}
function setEtcEnvironmentVariable {
variable_name="$1"
variable_value="$2"
if grep "$variable_name" /etc/environment > /dev/null; then
replaceEtcEnvironmentVariable "$variable_name" "$variable_value"
else
addEtcEnvironmentVariable "$variable_name" "$variable_value"
fi
}
function prependEtcEnvironmentVariable {
variable_name="$1"
element="$2"
# TODO: handle the case if the variable does not exist
existing_value=$(getEtcEnvironmentVariable "${variable_name}")
setEtcEnvironmentVariable "${variable_name}" "${element}:${existing_value}"
}
function appendEtcEnvironmentVariable {
variable_name="$1"
element="$2"
# TODO: handle the case if the variable does not exist
existing_value=$(getEtcEnvironmentVariable "${variable_name}")
setEtcEnvironmentVariable "${variable_name}" "${existing_value}:${element}"
}
function prependEtcEnvironmentPath {
element="$1"
prependEtcEnvironmentVariable PATH "${element}"
}
function appendEtcEnvironmentPath {
element="$1"
appendEtcEnvironmentVariable PATH "${element}"
}
# Process /etc/environment as if it were shell script with `export VAR=...` expressions
# The PATH variable is handled specially in order to do not override the existing PATH
# variable. The value of PATH variable read from /etc/environment is added to the end
# of value of the exiting PATH variable exactly as it would happen with real PAM app read
# /etc/environment
#
# TODO: there might be the others variables to be processed in the same way as "PATH" variable
# ie MANPATH, INFOPATH, LD_*, etc. In the current implementation the values from /etc/evironments
# replace the values of the current environment
function reloadEtcEnvironment {
# add `export ` to every variable of /etc/environemnt except PATH and eval the result shell script
eval "$(grep -v '^PATH=' /etc/environment | sed -e 's%^%export %')"
# handle PATH specially
etc_path=$(getEtcEnvironmentVariable PATH)
export PATH="$PATH:$etc_path"
}
+6 -3
View File
@@ -5,13 +5,16 @@
################################################################################
function isUbuntu18() {
lsb_release -d | grep -q 'Ubuntu 18'
. /etc/os-release
[[ "${VERSION_ID}" =~ ^18\.(.*)$ ]]
}
function isUbuntu20() {
lsb_release -d | grep -q 'Ubuntu 20'
. /etc/os-release
[[ "${VERSION_ID}" =~ ^20\.(.*)$ ]]
}
function getOSVersionLabel() {
lsb_release -cs
. /etc/os-release
echo "${VERSION_CODENAME}"
}