Skip to content
Snippets Groups Projects
Select Git revision
  • 20d9da22e317fa4c39a75916b2410cdb45c16210
  • master default protected
  • Legacy_Php7
3 results

act_accept.php

Blame
  • installer_samagent.sh 4.21 KiB
    #!/bin/bash
    # ======================================================================
    #
    # LINUX INSTALLER :: UNIBE SAM AGENT
    #
    # License: GNU GPL 3.0
    #
    # ----------------------------------------------------------------------
    # 2024-04-19  v0.1  <axel.hahn@unibe.ch>
    # 2024-05-22  v0.2  <axel.hahn@unibe.ch>  handle deb file directly
    # ======================================================================
    
    _version="0.2"
    
    # ----------------------------------------------------------------------
    # FUNCTIONS
    # ----------------------------------------------------------------------
    
    # show headline for better readability
    # param  string  text to show
    function h2(){
        echo
        echo
        echo -e ">>>>>>>>>>| $*"
    }
    
    # ----------------------------------------------------------------------
    # MAIN
    # ----------------------------------------------------------------------
    
    echo "______________________________________________________________________
    
      I N S T A L L E R  *  SAM AGENT                                v$_version
    
      Institute for Medical Education
    ______________________________________________________________________
    "
    
    h2 "Read config"
    . "$( dirname "$0" )/config.sh" || exit 1
    
    if [ -z "$SITENAME" ]; then
        echo "ERROR: missing SITENAME."
        echo "See $URLSITENAMNE"
        echo "to get the sitename for your department."
        echo "Put it into the file config.sh behind SITENAME=..."
        exit 1
    fi
    
    if [ -z "$DEBFILE" ]; then
        echo "Source file: $SOURCEZIP"
        ls -l "$SOURCEZIP" || exit 1
    
        h2 "Detect DEB package for ${PLATFORM} from $SOURCEZIP ..."
        DEBFILE=$( unzip -l "$SOURCEZIP" "SAM Agent/*${PLATFORM}.deb" | grep -v "/._" | grep "${PLATFORM}" | rev | cut -f 1,2 -d " " | rev )
        echo "Found debian file: $DEBFILE"
    
    
        test -z "$DEBFILE" && echo "Debian Paket nicht gefunden. Paket korrupt oder Skript findet es nicht."
        test -z "$DEBFILE" && exit 2
        echo "OK"
        echo
        test -d "$EXTRACTDIR" || mkdir "$EXTRACTDIR"
        cd "$EXTRACTDIR" || exit 3
    
        echo "Switched to workdir to extract data:"
        pwd
    
    
        h2 "Extracting $DEBFILE from $SOURCEZIP ..."
        unzip -o "$SOURCEZIP" -d . "$DEBFILE" || exit 4
        echo "Result:"
    else
        test -d "$EXTRACTDIR" || mkdir "$EXTRACTDIR"
        cd "$EXTRACTDIR" || exit 3
    fi
    
    ls -l "$DEBFILE" || exit 5
    
    
    h2 "Extracting $DEBFILE to $( pwd ) ..."
    ar x "$DEBFILE" 
    ls -l
    
    
    h2 "Extracting control.tar.gz ..."
    ls -l "control.tar.gz" || exit 4
    tar -xzf "control.tar.gz"
    
    
    h2 "Extracting data.tar.gz ..."
    ls -l "data.tar.gz" || exit 5
    tar -xzf "data.tar.gz"
    
    subdirname=$( ls opt | tr -d '/' )
    echo "Found subdir: opt/$subdirname"
    
    
    h2 "Get version ..."
    PKGVERSION=$( grep "^Version: " "control" 2>/dev/null | cut -f 2- -d " " )
    SWVERSION=$( grep "^Version: " "$INSTALLDIR/$subdirname/control" | cut -f 2- -d " " )
    echo "To install: $PKGVERSION"
    echo "Installed : $SWVERSION"
    if [ "$PKGVERSION" = "$SWVERSION" ]; then
        echo
        echo "SKIP: This version is installed already"
    else
    
    
        h2 "Get package name ..."
        PKGNAME=$( grep "^Package: " "control" | cut -f 2- -d " " )
        echo "Found: $PKGNAME"
    
    
        h2 "Patching SITENAME --> $SITENAME ..."
        ls -l opt/$subdirname/snowagent.config || exit 6
        cp -pf opt/$subdirname/snowagent.config opt/$subdirname/snowagent.config__orig
        sed -i "s#<SiteName>.*</SiteName>#<SiteName>$SITENAME</SiteName>#" opt/$subdirname/snowagent.config
        diff opt/$subdirname/snowagent.config__orig opt/$subdirname/snowagent.config
       
        h2 "Put files to opt ..."
        test -d "$INSTALLDIR/$subdirname" && ( echo "Removing $INSTALLDIR/$subdirname"; sudo rm -rf "$INSTALLDIR/$subdirname" )
        echo "Copy opt/$subdirname to $INSTALLDIR ..."
        sudo cp -r "opt/$subdirname" "$INSTALLDIR" || exit 6
        sudo cp "control" "$INSTALLDIR/$subdirname" || exit 6
        echo
        echo "Result"
        sudo find $INSTALLDIR/$subdirname
    
        h2 "Run debian scripts ..."
        for myscript in preinst postinst # prerm postrm
        do
            echo "----- Executing '$myscript $PKGNAME'"
            sudo ./$myscript "$PKGNAME" || ( echo ; read -p "--> Exitcode was non zero. Press RETURN to continue or Ctrl+C to abort" )
            echo
        done
    
    fi
    
    h2 "Cleanup ..."
    echo "Deleting workdir $EXTRACTDIR ..."
    rm -rf "$EXTRACTDIR"
    echo
    echo "Done."
    
    # ----------------------------------------------------------------------