mirror of
https://github.com/arnaucube/poulpy.git
synced 2026-02-10 05:06:44 +01:00
103 lines
2.8 KiB
Bash
103 lines
2.8 KiB
Bash
#!/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
|