[PATCH] Added system wide installation
Wald Commits
scm-commit at wald.intevation.org
Wed Jul 2 12:39:44 CEST 2014
# HG changeset patch
# User Sascha Wilde <wilde at intevation.de>
# Date 1404297568 -7200
# Node ID 37899f717fa5bb166ddefa588fced3536e038f17
# Parent 6bb3018b966d163ad3f05ee6d39623a848362595
Added system wide installation.
diff -r 6bb3018b966d -r 37899f717fa5 packaging/linux-installer.inc.in
--- a/packaging/linux-installer.inc.in Wed Jul 02 11:57:32 2014 +0200
+++ b/packaging/linux-installer.inc.in Wed Jul 02 12:39:28 2014 +0200
@@ -1,14 +1,17 @@
#!/bin/bash
+set -u
ME=`basename "$0"`
DEFAULT_PREFIX="$HOME/TrustBridge"
+SYSDEFAULT_PREFIX="/usr/local"
CFGPATH="${XDG_DATA_HOME:-$HOME/.local/share}/BSI/TrustBridge"
SYSCFGPATH="/etc/TrustBridge"
INSTCFGNAME="installation.cfg"
FORCE=0
+SYSINST=0
-instcfg_file="${CFGPATH}/${INSTCFGNAME}"
declare -A instcfg oldinstcfg
+declare inst_default_prefix instcfg_file
instcfg=(
[TIMESTMP]=`date -u +%Y%m%d%H%M%S`
[VERSION]='@PROJECT_VERSION@'
@@ -50,7 +53,8 @@
Options:
-p, --prefix=PATH install files in PATH
- -f, --force install to given prefix, even when a current
+ -s, --system=PATH make an system wide installation
+ -f, --force install to given prefix, even when a current
installation with different prefix exists.
--help display this help and exit
--version output version information and exit
@@ -61,8 +65,8 @@
parse_args()
{
OPTS=`getopt \
- -l force,help,prefix:,version \
- -o f,p: -n "$ME" -- "$@"`
+ -l force,help,prefix:,system,version \
+ -o f,p:,s -n "$ME" -- "$@"`
[ $? -eq 0 ] || usage 23
eval set -- "$OPTS"
@@ -73,6 +77,10 @@
instcfg[PREFIX]="$2"
shift 2
;;
+ --system|-s)
+ SYSINST=1
+ shift 1
+ ;;
--force|-f)
FORCE=1
shift 1
@@ -91,6 +99,17 @@
done
}
+init_vars()
+{
+ if [ $SYSINST -eq 1 ] ; then
+ inst_default_prefix="$SYSDEFAULT_PREFIX"
+ instcfg_file="${SYSCFGPATH}/${INSTCFGNAME}"
+ else
+ inst_default_prefix="$DEFAULT_PREFIX"
+ instcfg_file="${CFGPATH}/${INSTCFGNAME}"
+ fi
+}
+
write_instcfg()
{
install -d `dirname "$instcfg_file"`
@@ -107,13 +126,23 @@
for key in "${!oldinstcfg[@]}" ; do
oldinstcfg[$key]=`sed -n "/$key/s/[^=]*=\(.*\)/\1/p" "$instcfg_file"`
done
- fi
+ fi
}
+check_priv()
+{
+ if [ $SYSINST -eq 1 -a "$UID" -ne 0 ] ; then
+ fatal "System wide installation requires root privileges!"
+ fi
+}
+
+
#======================================================================
# main()
parse_args "$@"
+init_vars
+check_priv
read_oldinstcfg
cat <<EOF
@@ -128,16 +157,16 @@
if [ -z "${instcfg[PREFIX]}" ] ; then
if [ "${oldinstcfg[PREFIX]}" ] ; then
- DEFAULT_PREFIX="${oldinstcfg[PREFIX]}"
+ inst_default_prefix="${oldinstcfg[PREFIX]}"
echo "An existing installation (v${oldinstcfg[VERSION]}) was detected!"
echo "It is HIGHLY RECOMMENDED to accept the default prefix"
echo "to update the current installation."
echo "For a new prefix you should deinstall first!"
fi
- echo -n "Select installation prefix for TrustBridge [${DEFAULT_PREFIX}]: "
+ echo -n "Select installation prefix for TrustBridge [${inst_default_prefix}]: "
read -e instcfg[PREFIX]
- [ -z "${instcfg[PREFIX]}" ] && instcfg[PREFIX]="${DEFAULT_PREFIX}"
+ [ -z "${instcfg[PREFIX]}" ] && instcfg[PREFIX]="${inst_default_prefix}"
else
# Prefix was given on invocation:
if [ "${oldinstcfg[PREFIX]}" -a \
More information about the Trustbridge-commits
mailing list