poulpy/spqlios/lib/scripts/ci-pkg
spqlios/lib/scripts/ci-pkgRaw
1#!/bin/sh
2
3# ONLY USE A PREFIX YOU ARE CONFIDENT YOU CAN WIPE OUT ENTIRELY
4CI_INSTALL_PREFIX=/opt/spqlios
5CI_REPO_URL=https://spq-dav.algonics.net/ci
6WORKDIR=`pwd`
7if [ "x$DESTDIR" = "x" ]; then
8 DESTDIR=/
9else
10 mkdir -p $DESTDIR
11 DESTDIR=`realpath $DESTDIR`
12fi
13DIR=`dirname "$0"`
14cd $DIR/..
15DIR=`pwd`
16
17FULL_UNAME=`uname -a | tr '[A-Z]' '[a-z]'`
18HOST=`echo $FULL_UNAME | sed 's/ .*//'`
19ARCH=none
20case "$HOST" in
21 *linux*)
22 DISTRIB=`lsb_release -c | awk '{print $2}' | tr '[A-Z]' '[a-z]'`
23 HOST=linux-$DISTRIB
24 ;;
25 *darwin*)
26 HOST=darwin
27 ;;
28 *mingw*|*msys*)
29 DISTRIB=`echo $MSYSTEM | tr '[A-Z]' '[a-z]'`
30 HOST=msys64-$DISTRIB
31 ;;
32 *)
33 echo "Host unknown: $HOST";
34 exit 1
35esac
36case "$FULL_UNAME" in
37 *x86_64*)
38 ARCH=x86_64
39 ;;
40 *aarch64*)
41 ARCH=aarch64
42 ;;
43 *arm64*)
44 ARCH=arm64
45 ;;
46 *)
47 echo "Architecture unknown: $FULL_UNAME";
48 exit 1
49esac
50UNAME="$HOST-$ARCH"
51CMH=
52if [ -d lib/spqlios/.git ]; then
53 CMH=`git submodule status | sed 's/\(..........\).*/\1/'`
54else
55 CMH=`git rev-parse HEAD | sed 's/\(..........\).*/\1/'`
56fi
57FNAME=spqlios-arithmetic-$CMH-$UNAME.tar.gz
58
59cat <<EOF
60================= CI MINI-PACKAGER ==================
61Work Dir: WORKDIR=$WORKDIR
62Spq Dir: DIR=$DIR
63Install Root: DESTDIR=$DESTDIR
64Install Prefix: CI_INSTALL_PREFIX=$CI_INSTALL_PREFIX
65Archive Name: FNAME=$FNAME
66CI WebDav: CI_REPO_URL=$CI_REPO_URL
67=====================================================
68EOF
69
70if [ "x$1" = "xcreate" ]; then
71 rm -rf dist
72 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
73 cmake --build build || exit 1
74 rm -rf "$DIR/dist" 2>/dev/null
75 rm -f "$DIR/$FNAME" 2>/dev/null
76 DESTDIR="$DIR/dist" cmake --install build || exit 1
77 if [ -d "$DIR/dist$CI_INSTALL_PREFIX" ]; then
78 tar -C "$DIR/dist" -cvzf "$DIR/$FNAME" .
79 else
80 # fix since msys can mess up the paths
81 REAL_DEST=`find "$DIR/dist" -type d -exec test -d "{}$CI_INSTALL_PREFIX" \; -print`
82 echo "REAL_DEST: $REAL_DEST"
83 [ -d "$REAL_DEST$CI_INSTALL_PREFIX" ] && tar -C "$REAL_DEST" -cvzf "$DIR/$FNAME" .
84 fi
85 [ -f "$DIR/$FNAME" ] || { echo "failed to create $DIR/$FNAME"; exit 1; }
86 [ "x$CI_CREDS" = "x" ] && { echo "CI_CREDS is not set: not uploading"; exit 1; }
87 curl -u "$CI_CREDS" -T "$DIR/$FNAME" "$CI_REPO_URL/$FNAME"
88fi
89
90if [ "x$1" = "xinstall" ]; then
91 [ "x$CI_CREDS" = "x" ] && { echo "CI_CREDS is not set: not downloading"; exit 1; }
92 # cleaning
93 rm -rf "$DESTDIR$CI_INSTALL_PREFIX"/* 2>/dev/null
94 rm -f "$DIR/$FNAME" 2>/dev/null
95 # downloading
96 curl -u "$CI_CREDS" -o "$DIR/$FNAME" "$CI_REPO_URL/$FNAME"
97 [ -f "$DIR/$FNAME" ] || { echo "failed to download $DIR/$FNAME"; exit 0; }
98 # installing
99 mkdir -p $DESTDIR
100 tar -C "$DESTDIR" -xvzf "$DIR/$FNAME"
101 exit 0
102fi