diff options
author | Christian Rößler | 2013-08-28 14:22:37 +0200 |
---|---|---|
committer | Christian Rößler | 2013-08-28 14:22:37 +0200 |
commit | 3d4ce18d809b86afe0c5a61f585b885a4ed29ee5 (patch) | |
tree | 9b05b9641e7d3c18de867cbee303243daa4d63c2 /helper | |
parent | [vbox] addon-init for systemd service (diff) | |
parent | [fileutil.inc] list_packet_files: Ignore output lines that do not start with ... (diff) | |
download | tm-scripts-3d4ce18d809b86afe0c5a61f585b885a4ed29ee5.tar.gz tm-scripts-3d4ce18d809b86afe0c5a61f585b885a4ed29ee5.tar.xz tm-scripts-3d4ce18d809b86afe0c5a61f585b885a4ed29ee5.zip |
Tried to amend single commentary for many files: New vbox module
[not complete]
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
Conflicts:
helper/fileutil.inc
Diffstat (limited to 'helper')
-rw-r--r-- | helper/distribution.inc | 54 | ||||
-rw-r--r-- | helper/fileutil.inc | 4 |
2 files changed, 56 insertions, 2 deletions
diff --git a/helper/distribution.inc b/helper/distribution.inc new file mode 100644 index 00000000..817baa53 --- /dev/null +++ b/helper/distribution.inc @@ -0,0 +1,54 @@ + + +detect_distribution () { + # Set up distribution and package management + # Lowercase distributor ID is what we use as the general distribution name + SYS_DISTRIBUTION=$(lsb_release -is | tolower | sed -r 's/[^a-z0-9]//g;s/project$//g;s/scientificsl$/scientific/g') + # Then determine packet manager + case "$SYS_DISTRIBUTION" in + ubuntu) + PACKET_MANAGER="apt" + PACKET_HANDLER="dpkg" + detect_ubuntu_lts + ;; + debian) + PACKET_MANAGER="apt" + PACKET_HANDLER="dpkg" + ;; + opensuse) + PACKET_MANAGER="zypper" + PACKET_HANDLER="rpm" + ;; + scientific) + PACKET_MANAGER="yum" + PACKET_HANDLER="rpm" + ;; + *) + perror "Unknown Distribution: $SYS_DISTRIBUTION - Please specify its packet manager in remote/setup_target" + ;; + esac + # Get version - we mangle this quite a bit. first make sure it has no spaces, then split version at period (.), underscore (_) and dash (-) + SYS_VERSION=$(lsb_release -rs | tolower) + local VERSION=$(echo $SYS_VERSION | sed -r 's/\s//g;s/[\._]/ /g;s/-//g') + local STRTMP="" + PRINT_SYS_VERSIONS="*.conf.$SYS_DISTRIBUTION" + SYS_VERSIONS="$SYS_DISTRIBUTION" + for PART in $VERSION; do + [ -z "$PART" ] && continue + STRTMP+=".$PART" + SYS_VERSIONS="${SYS_DISTRIBUTION}${STRTMP} $SYS_VERSIONS" + PRINT_SYS_VERSIONS="*.conf.${SYS_DISTRIBUTION}${STRTMP} $PRINT_SYS_VERSIONS" + done + pinfo "Config source order: *.conf first, then the first one of these (if found)" + pinfo "$PRINT_SYS_VERSIONS" +} + +detect_ubuntu_lts () { + local TMP=$(dpkg -S /usr/bin/Xorg) + [[ "$TMP" == xserver-xorg* ]] || perror "Could not detect xserver package version (returned: $TMP)" + TMP=${TMP%: *} + TMP=${TMP#xserver-xorg-core} + pinfo "Ubuntu LTS Xorg suffix: $TMP" + UBUNTU_XORG_PKG_SUFFIX="$TMP" +} + diff --git a/helper/fileutil.inc b/helper/fileutil.inc index c0b9d69a..abab7903 100644 --- a/helper/fileutil.inc +++ b/helper/fileutil.inc @@ -38,9 +38,9 @@ list_packet_files() { [ "x$OPTIONAL" = "x@" ] && PACKAGE="$(echo "$PACKAGE" | cut -c 2-)" local FILES="" if [ "$PACKET_HANDLER" = "dpkg" ]; then - FILES="$(dpkg -L "$PACKAGE" | grep -v -E 'share/(man|doc)|/var/run|/var/log'; echo ":###:${PIPESTATUS[0]}")" + FILES="$(dpkg -L "$PACKAGE" | grep "^/" | grep -v -E 'share/(man|doc)|/var/run|/var/log'; echo ":###:${PIPESTATUS[0]}")" elif [ "$PACKET_HANDLER" = "rpm" ]; then - FILES="$(rpm -ql "$PACKAGE" | grep -v -E 'share/(doc|man)|/var/run|/var/log'; echo ":###:${PIPESTATUS[0]}")" + FILES="$(rpm -ql "$PACKAGE" | grep "^/" | grep -v -E 'share/(man|doc)|/var/run|/var/log'; echo ":###:${PIPESTATUS[0]}")" fi # ugly hack to get our return value #local LPRET=$(echo "$FILES" | tail -1 | sed 's/^.*:###:\([0-9]*\)$/\1/g') |