mirror of
https://github.com/arnaucube/poulpy.git
synced 2026-02-10 13:16:44 +01:00
spqlios basic wrapper
This commit is contained in:
102
spqlios/lib/scripts/ci-pkg
Normal file
102
spqlios/lib/scripts/ci-pkg
Normal file
@@ -0,0 +1,102 @@
|
||||
#!/bin/sh
|
||||
|
||||
# ONLY USE A PREFIX YOU ARE CONFIDENT YOU CAN WIPE OUT ENTIRELY
|
||||
CI_INSTALL_PREFIX=/opt/spqlios
|
||||
CI_REPO_URL=https://spq-dav.algonics.net/ci
|
||||
WORKDIR=`pwd`
|
||||
if [ "x$DESTDIR" = "x" ]; then
|
||||
DESTDIR=/
|
||||
else
|
||||
mkdir -p $DESTDIR
|
||||
DESTDIR=`realpath $DESTDIR`
|
||||
fi
|
||||
DIR=`dirname "$0"`
|
||||
cd $DIR/..
|
||||
DIR=`pwd`
|
||||
|
||||
FULL_UNAME=`uname -a | tr '[A-Z]' '[a-z]'`
|
||||
HOST=`echo $FULL_UNAME | sed 's/ .*//'`
|
||||
ARCH=none
|
||||
case "$HOST" in
|
||||
*linux*)
|
||||
DISTRIB=`lsb_release -c | awk '{print $2}' | tr '[A-Z]' '[a-z]'`
|
||||
HOST=linux-$DISTRIB
|
||||
;;
|
||||
*darwin*)
|
||||
HOST=darwin
|
||||
;;
|
||||
*mingw*|*msys*)
|
||||
DISTRIB=`echo $MSYSTEM | tr '[A-Z]' '[a-z]'`
|
||||
HOST=msys64-$DISTRIB
|
||||
;;
|
||||
*)
|
||||
echo "Host unknown: $HOST";
|
||||
exit 1
|
||||
esac
|
||||
case "$FULL_UNAME" in
|
||||
*x86_64*)
|
||||
ARCH=x86_64
|
||||
;;
|
||||
*aarch64*)
|
||||
ARCH=aarch64
|
||||
;;
|
||||
*arm64*)
|
||||
ARCH=arm64
|
||||
;;
|
||||
*)
|
||||
echo "Architecture unknown: $FULL_UNAME";
|
||||
exit 1
|
||||
esac
|
||||
UNAME="$HOST-$ARCH"
|
||||
CMH=
|
||||
if [ -d lib/spqlios/.git ]; then
|
||||
CMH=`git submodule status | sed 's/\(..........\).*/\1/'`
|
||||
else
|
||||
CMH=`git rev-parse HEAD | sed 's/\(..........\).*/\1/'`
|
||||
fi
|
||||
FNAME=spqlios-arithmetic-$CMH-$UNAME.tar.gz
|
||||
|
||||
cat <<EOF
|
||||
================= CI MINI-PACKAGER ==================
|
||||
Work Dir: WORKDIR=$WORKDIR
|
||||
Spq Dir: DIR=$DIR
|
||||
Install Root: DESTDIR=$DESTDIR
|
||||
Install Prefix: CI_INSTALL_PREFIX=$CI_INSTALL_PREFIX
|
||||
Archive Name: FNAME=$FNAME
|
||||
CI WebDav: CI_REPO_URL=$CI_REPO_URL
|
||||
=====================================================
|
||||
EOF
|
||||
|
||||
if [ "x$1" = "xcreate" ]; then
|
||||
rm -rf dist
|
||||
cmake -B build -S . -DCMAKE_INSTALL_PREFIX="$CI_INSTALL_PREFIX" -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTING=ON -DWARNING_PARANOID=ON -DDEVMODE_INSTALL=ON || exit 1
|
||||
cmake --build build || exit 1
|
||||
rm -rf "$DIR/dist" 2>/dev/null
|
||||
rm -f "$DIR/$FNAME" 2>/dev/null
|
||||
DESTDIR="$DIR/dist" cmake --install build || exit 1
|
||||
if [ -d "$DIR/dist$CI_INSTALL_PREFIX" ]; then
|
||||
tar -C "$DIR/dist" -cvzf "$DIR/$FNAME" .
|
||||
else
|
||||
# fix since msys can mess up the paths
|
||||
REAL_DEST=`find "$DIR/dist" -type d -exec test -d "{}$CI_INSTALL_PREFIX" \; -print`
|
||||
echo "REAL_DEST: $REAL_DEST"
|
||||
[ -d "$REAL_DEST$CI_INSTALL_PREFIX" ] && tar -C "$REAL_DEST" -cvzf "$DIR/$FNAME" .
|
||||
fi
|
||||
[ -f "$DIR/$FNAME" ] || { echo "failed to create $DIR/$FNAME"; exit 1; }
|
||||
[ "x$CI_CREDS" = "x" ] && { echo "CI_CREDS is not set: not uploading"; exit 1; }
|
||||
curl -u "$CI_CREDS" -T "$DIR/$FNAME" "$CI_REPO_URL/$FNAME"
|
||||
fi
|
||||
|
||||
if [ "x$1" = "xinstall" ]; then
|
||||
[ "x$CI_CREDS" = "x" ] && { echo "CI_CREDS is not set: not downloading"; exit 1; }
|
||||
# cleaning
|
||||
rm -rf "$DESTDIR$CI_INSTALL_PREFIX"/* 2>/dev/null
|
||||
rm -f "$DIR/$FNAME" 2>/dev/null
|
||||
# downloading
|
||||
curl -u "$CI_CREDS" -o "$DIR/$FNAME" "$CI_REPO_URL/$FNAME"
|
||||
[ -f "$DIR/$FNAME" ] || { echo "failed to download $DIR/$FNAME"; exit 0; }
|
||||
# installing
|
||||
mkdir -p $DESTDIR
|
||||
tar -C "$DESTDIR" -xvzf "$DIR/$FNAME"
|
||||
exit 0
|
||||
fi
|
||||
Reference in New Issue
Block a user