Files
SingularityViewer/scripts/repackage.sh
2021-07-18 15:33:42 -04:00

134 lines
2.7 KiB
Bash
Executable File

#!/usr/bin/env bash
#(C) 2011 SIANA GEARZ
usage() {
echo "Usage: repackage PLATFORM FILEIN.tar.bz2 [FILEOUT.tar.bz2]
Repackage an archive from llautobuild format into singularity format
PLATFORM can be one of windows, windows64 linux, linux64, mac.
"
exit 0
}
TMP="/tmp/pak$$"
LIBPATH=""
INCPATH=""
BINPATH=""
PWD=`pwd`
if [ -z "$1" ]; then
usage
fi
shopt -s nocasematch
case "$1" in
--windows|-w|windows|win)
MODE=win
LIBPATH="libraries/i686-win32/lib/release"
LIBDPATH="libraries/i686-win32/lib/debug"
INCPATH="libraries/i686-win32/include"
BINPATH="libraries/i686-win32/bin"
;;
--windows64|-w64|windows64|win64)
MODE=windows64
LIBPATH="libraries/x86_64-win/lib/release"
LIBDPATH="libraries/x86_64-win/lib/debug"
INCPATH="libraries/x86_64-win/include"
BINPATH="libraries/x86_64-win/bin"
;;
--mac|--osx|--darwin|-x|mac|osx|darwin)
MODE=osx
LIBPATH="libraries/universal-darwin/lib/release"
LIBDPATH="libraries/universal-darwin/lib/debug"
INCPATH="libraries/universal-darwin/include"
BINPATH="libraries/universal-darwin/bin"
;;
--lin|--linux|-l|linux)
MODE=linux
LIBPATH="libraries/i686-linux/lib/release"
LIBDPATH="libraries/i686-linux/lib/debug"
INCPATH="libraries/i686-linux/include"
BINPATH="libraries/i686-linux/bin"
;;
--linux64|-6|linux64)
MODE=linux64
LIBPATH="libraries/x86_64-linux/lib/release"
LIBDPATH="libraries/x86_64-linux/lib/debug"
INCPATH="libraries/x86_64-linux/include"
BINPATH="libraries/x86_64-linux/bin"
;;
*)
echo ERROR: No mode specified
usage
;;
esac
case "$2" in
--commoninclude|--common-include|--common)
echo "Using common include directory"
INCPATH="libraries/include"
shift
;;
esac
FILEIN=$2
if [ -z "$FILEIN" ]; then
echo ERROR: No input file specified
usage
fi
test -n "$3" && FILEOUT=`readlink -f $3`
if [ -z "$FILEOUT" ]; then
FILEOUT=`readlink -m package.tar.bz2`
fi
mkdir "$TMP"
case "$FILEIN" in
http\:\/\/*|https\:\/\/*)
echo " Downloading..."
cd "$TMP"
curl -L "$FILEIN" > package.tar.bz2
echo " Unpacking..."
tar -xjvf package.tar.bz2
rm package.tar.bz2
;;
*)
FILEIN=`readlink -e $FILEIN`
if [ -z "$FILEIN" ]; then
echo ERROR: Input file not found
usage
fi
echo " Unpacking..."
cd "$TMP"
tar -xjvf "$FILEIN"
;;
esac
if [ -n "$LIBDPATH" -a -d lib/debug ]; then
mkdir -p $LIBDPATH
mv -f lib/debug/* $LIBDPATH
fi
if [ -d lib/release ]; then
mkdir -p $LIBPATH
mv -f lib/release/* $LIBPATH
fi
if [ -d include ]; then
mkdir -p $INCPATH
mv -f include/* $INCPATH
fi
if [ -d bin ]; then
mkdir -p $BINPATH
mv -f bin/* $BINPATH
fi
echo " Packing..."
tar -cjvf "$FILEOUT" libraries LICENSES
echo " Checksum:"
cd "`dirname "$FILEOUT"`"
md5sum -b "`basename "$FILEOUT"`"
cd "$PWD"
rm -rf "$TMP"