diff options
-rwxr-xr-x | installer/pkg-generator/genpkg.sh | 72 |
1 files changed, 66 insertions, 6 deletions
diff --git a/installer/pkg-generator/genpkg.sh b/installer/pkg-generator/genpkg.sh index 4dd626b5..5f488336 100755 --- a/installer/pkg-generator/genpkg.sh +++ b/installer/pkg-generator/genpkg.sh @@ -17,6 +17,18 @@ PKG_GEN_PATH=/root/debian-pkg #DESTDIR=$ROOTDIR/opt/opengnsys TMPDIR=/tmp/opengnsys_installer +# Registro de incidencias. +OGLOGFILE=$TMPDIR/log/${PROGRAMNAME%.sh}.log +LOG_FILE=/tmp/$(basename $OGLOGFILE) + +BRANCH="master" +CODE_URL="https://codeload.github.com/opengnsys/OpenGnsys/zip/$BRANCH" +API_URL="https://api.github.com/repos/opengnsys/OpenGnsys/branches/$BRANCH" +RAW_URL="https://raw.githubusercontent.com/opengnsys/OpenGnsys/$BRANCH" + +DEV_BRANCH="debian-pkg" + + function help() { read -r -d '' HELP <<- EOM @@ -33,6 +45,26 @@ EOM echo "$HELP" } +function getDateTime() +{ + date "+%Y%m%d-%H%M%S" +} + +# Escribe a fichero y muestra por pantalla +function echoAndLog() +{ + echo $1 + DATETIME=`getDateTime` + echo "$DATETIME;$SSH_CLIENT;$1" >> $LOG_FILE +} + +function errorAndLog() +{ + echo "ERROR: $1" + DATETIME=`getDateTime` + echo "$DATETIME;$SSH_CLIENT;ERROR: $1" >> $LOG_FILE +} + function createControlFile() { cat > $ROOTDIR/DEBIAN/control << EOF @@ -48,33 +80,61 @@ Homepage: https://opengnsys.es EOF } +function downloadCode() +{ + if [ $# -ne 1 ]; then + errorAndLog "${FUNCNAME}(): invalid number of parameters" + exit 1 + fi + + local url="$1" + + echoAndLog "${FUNCNAME}(): downloading code..." + + curl "${url}" -o opengnsys.zip && unzip opengnsys.zip && mv "OpenGnsys-$BRANCH" opengnsys + if [ $? -ne 0 ]; then + errorAndLog "${FUNCNAME}(): error getting code from ${url}, verify your user and password" + return 1 + fi + rm -f opengnsys.zip + echoAndLog "${FUNCNAME}(): code was downloaded" + return 0 +} + function createFullPackage() { PKG_NAME="opengnsys-full" ROOTDIR=$PKG_GEN_PATH/$PKG_NAME mkdir -p $DESTDIR $TMPDIR $ROOTDIR -svn export --force $SVNURL $TMPDIR +#downloadCode $CODE_URL +# for testing and development: +git clone gituser@opengnsys.es:/git/opengnsys -b $DEV_BRANCH $TMPDIR mkdir -p $ROOTDIR/DEBIAN $ROOTDIR/tmp ln -s $TMPDIR/ $TMPDIR/opengnsys DEPENDS="Depends: subversion, apache2, php, php-ldap, libapache2-mod-php, isc-dhcp-server, bittorrent, tftp-hpa, tftpd-hpa, xinetd, build-essential, g++-multilib, libmysqlclient-dev, wget, curl, doxygen, graphviz, bittornado, ctorrent, samba, rsync, unzip, netpipes, debootstrap, schroot, squashfs-tools, btrfs-tools, procps, arp-scan, realpath, php-curl, gettext ,moreutils, jq, wakeonlan, mysql-server, php-mysql, udpcast" -createControlFile + # Copy installer to postinst -cp $TMPDIR/installer/opengnsys_installer.sh $ROOTDIR/DEBIAN/postinst +#cp $TMPDIR/installer/opengnsys_git_installer.sh $ROOTDIR/DEBIAN/postinst +cp -a $TMPDIR/installer/pkg-generator/DEBIAN $ROOTDIR/ + +createControlFile # Ejemplo de modificacion del postinst al vuelo # sed -i 's/wget --spider -q/wget --spider -q --no-check-certificate/g' $ROOTDIR/DEBIAN/postinst # deactivate svn function -sed -i '/function svnExportCode/{N;s/$/\nreturn 0/}' $ROOTDIR/DEBIAN/postinst +#sed -i '/function svnExportCode/{N;s/$/\nreturn 0/}' $ROOTDIR/DEBIAN/postinst -# copy svn repo structure inside .deb package -cp -a $TMPDIR $ROOTDIR/tmp +# copy repo structure inside .deb package and delete .git dir +cp -r $TMPDIR $ROOTDIR/tmp +rm -Rf $ROOTDIR/tmp/opengnsys_installer/.git # Finally Generate package cd $PKG_GEN_PATH dpkg --build $PKG_NAME . } + function createClientPackage() { PKG_NAME="opengnsys-client" |