summaryrefslogtreecommitdiff
path: root/src/build_package.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/build_package.sh')
-rwxr-xr-xsrc/build_package.sh228
1 files changed, 0 insertions, 228 deletions
diff --git a/src/build_package.sh b/src/build_package.sh
deleted file mode 100755
index a6d4a33..0000000
--- a/src/build_package.sh
+++ /dev/null
@@ -1,228 +0,0 @@
-#!/bin/bash
-
-GREEN="\033[0;32m"
-BLUE="\033[0;34m"
-
-BUILDFILE=$1
-REPO=$(echo $BUILDFILE | rev | cut -d/ -f2 | rev)
-NAME=$(basename $BUILDFILE .xibuild)
-
-source $BUILDFILE
-
-extract () {
- FILE=$1
- case "${FILE##*.}" in
- "gz" )
- tar -zxf $FILE
- ;;
- "lz" )
- tar --lzip -xf "$FILE"
- ;;
- "zip" )
- unzip $FILE
- ;;
- * )
- tar -xf $FILE
- ;;
- esac
-}
-
-package_exists () {
- local exported="$XIB_EXPORT/repo/$REPO/$NAME"
- local exported_pkg="$exported.xipkg"
- local exported_pkg_info="$exported.xipkg.info"
- local exported_pkg_build="$exported.xibuild"
-
- if [ -f $exported_pkg ] && [ -f $exported_pkg_info ] && [ -f $exported_pkg_build ]; then
- local built_sum=$(md5sum $exported_pkg_build | cut -d" " -f1)
- local current_sum=$(md5sum $BUILDFILE | cut -d" " -f1)
-
- if [ "$built_sum" = "$current_sum" ]; then
- return 0
- fi
- fi
-
- return 1
-}
-
-fetch_source () {
- # download additional files
- local src_dir="$XIB_CHROOT/build/source"
- mkdir -p $src_dir
-
- cd $src_dir
-
- if [ ! -z ${SOURCE} ]; then
-
- if git ls-remote -q $SOURCE $BRANCH &> /dev/null; then
- # The source is a git repo
- git clone $SOURCE . &> /dev/null
- git checkout $BRANCH &> /dev/null
- else
- # The source is a file
-
- local downloaded_file=$(basename $SOURCE)
- curl -SsL $SOURCE > $downloaded_file
- extract $downloaded_file
-
- # if the extracted file only had one directory
- if [ "$(ls -l | wc -l)" = "3" ]; then
- for file in */* */.*; do
- echo $file | grep -q '\.$' || mv $file .
- done;
- fi
- fi
- fi
-
- # download additional files
- if [ ! -z ${ADDITIONAL} ]; then
- for url in ${ADDITIONAL[*]}; do
- local name=$(basename $url)
- curl -SsL $url > $src_dir/$name
- done
- fi
-}
-
-
-clean_chroot () {
- local export_dir="$XIB_CHROOT/export"
- local build_dir="$XIB_CHROOT/build"
-
- rm -rf $export_dir
- rm -rf $build_dir
-
- mkdir -p $export_dir
- mkdir -p $build_dir
-
- mkdir -p "$XIB_EXPORT/repo/$REPO/"
-}
-
-make_buildscript () {
-
- echo MAKEFLAGS="$MAKEFLAGS" >> "$XIB_CHROOT/build/profile"
- echo LDFLAGS="$LDFLAGS" >> "$XIB_CHROOT/build/profile"
-
- cat > "$XIB_CHROOT/build/build.sh" << "EOF"
-#!/bin/bash
-source /build/profile
-export PKG_NAME=$(cat /build/name)
-export PKG_DEST=/export
-
-prepare () {
- echo "passing prepare"
-}
-
-build () {
- echo "passing build"
-}
-
-check () {
- echo "passing check"
-}
-
-package () {
- echo "passing package"
-}
-
-cd /build
-ls
-source $PKG_NAME.xibuild
-cd /build/source
-
-echo "==========================PREPARE STAGE=========================="
-prepare || exit 1
-echo "==========================BUILD STAGE=========================="
-build || exit 1
-echo "==========================CHECK STAGE=========================="
-check || exit 1
-echo "==========================PACKAGE STAGE=========================="
-package || exit 1
-
-printf "checking for postinstall... "
-if command -v postinstall > /dev/null; then
- echo "adding postinstall"
- POSTINSTALL=$(type postinstall | sed '1,3d;$d')
- if [ ${#POSTINSTALL} != 0 ]; then
- POST_DIR=$PKG_DEST/var/lib/xipkg/postinstall
- mkdir -p $POST_DIR
- echo "#!/bin/sh" > $POST_DIR/$PKG_NAME.sh
- echo $POSTINSTALL >> $POST_DIR/$PKG_NAME.sh
- fi
-else
- echo "no postinstall"
-fi
-EOF
- chmod 700 "$XIB_CHROOT/build/build.sh"
-}
-
-package () {
- local export_repo="$XIB_EXPORT/repo/$REPO"
- local export_pkg="$XIB_EXPORT/repo/$REPO/$NAME.xipkg"
- local pkg_dest="$XIB_CHROOT/export"
-
- cd "$pkg_dest"
- if [ "$(ls -1 | wc -l)" = "0" ]; then
- printf " package is empty;"
- [ -z "${SOURCE}" ] || exit 1;
- fi
- tar -C $pkg_dest -czf $export_pkg ./
-}
-
-create_info () {
- local export_pkg="$XIB_EXPORT/repo/$REPO/$NAME.xipkg"
- local pkg_info="$export_pkg.info"
-
- echo "" > $pkg_info
- echo "NAME=$NAME" >> $pkg_info
- echo "DESCRIPTION=$DESC" >> $pkg_info
- echo "PKG_FILE=$NAME.xipkg" >> $pkg_info
- echo "CHECKSUM=$(md5sum $export_pkg | awk '{ print $1 }')" >> $pkg_info
- echo "SOURCE=$SOURCE" >> $pkg_info
- echo "DATE=$(date)" >> $pkg_info
- echo "DEPS=(${DEPS[*]})" >> $pkg_info
-}
-
-sign () {
- local export_pkg="$XIB_EXPORT/repo/$REPO/$NAME.xipkg"
- local pkg_info="$export_pkg.info"
-
- echo "SIGNATURE=" >> $pkg_info
- openssl dgst -sign $PRIV_KEY $export_pkg >> $pkg_info
-
-}
-
-build () {
- printf "$BLUE\tCleaning chroot..."
- clean_chroot && printf "$GREEN prepared\n" || return 1
-
- printf "$BLUE\tfetching source..."
- fetch_source && printf "$GREEN fetched $(du -sh "$XIB_CHROOT/build/source" | awk '{ print $1 }')\n" || return 1
-
- printf "$BLUE\tgenerating buildscript..."
- make_buildscript && printf "$GREEN generated\n" || return 1
-
- cp "$BUILDFILE" "$XIB_CHROOT/build/"
- printf $NAME > "$XIB_CHROOT/build/name"
-
- local log_file="$XIB_EXPORT/repo/$REPO/$NAME.log"
-
- printf "$BLUE\tBuilding package..."
- xichroot $XIB_CHROOT /build/build.sh &> $log_file && printf "$GREEN built!\n" || return 1
-
- printf "$BLUE\tPackaging package..."
- package && printf "$GREEN packaged to $(du -sh "$XIB_EXPORT/repo/$REPO/$NAME.xipkg" | awk '{ print $1 }')!\n" || return 1
-
- printf "$BLUE\tCreating package info..."
- create_info && printf "$GREEN created info!\n" || return 1
-
- # TODO check if the key exists, if not, skip signing
- printf "$BLUE\tSigning package..."
- sign && printf "$GREEN signed!\n" || return 1
-
- cp "$BUILDFILE" "$XIB_EXPORT/repo/$REPO/"
-}
-
-[ -z "${XIB_CHROOT}" ] && echo "CRITICAL! No chroot env variable set!" && exit 1;
-
-package_exists && printf "\tPackage exists!\n" || build
-