pack - scripts - various script and utils
HTML git clone git://z3bra.org/scripts
DIR Log
DIR Files
DIR Refs
---
pack (1529B)
---
1 #!/bin/sh
2
3 set -e
4
5 if [ -f got.conf ]; then
6 b=~/build/$(basename $PWD .git)
7 [ ! -d $b ] && got checkout $PWD $b
8 cd $b
9 fi
10
11 d=$(basename $PWD)
12 n=${d%%-*}
13 tag=${d#*-}
14 [ "$tag" = "$n" ] && tag=""
15
16 got_tag() {
17 base=$(got info|sed -rn 's/.*base commit: ([a-f0-9]{10}).*/\1/p')
18 got tag -ls|grep "commit:$base"|cut -d: -f2|cut -d' ' -f2|tr -d vV:
19 }
20
21 [ -d .git ] && tag=$(git describe --abbrev=0 --tags|tr -d vV:)
22 [ -d .got ] && tag=$(got_tag)
23
24 v="${tag:-0.0}"
25 t="${n}@${v}.tbz"
26
27 export PREFIX=/usr/local
28 export MANPREFIX=${PREFIX}/man
29 export MANDIR=${MANPREFIX}
30 export DESTDIR=$(mktemp -d)
31
32 trap 'rm -rf $DESTDIR' EXIT QUIT INT TERM
33
34 # configure
35 [ -f ./autogen.sh ] && ./autogen.sh
36 [ -f ./configure ] && ./configure --prefix=$PREFIX --mandir=$MANDIR "$@"
37 [ -f ./meson.build ] && meson _ --prefix=$PREFIX --mandir=$MANDIR --libdir=lib "$@"
38
39 # build / install
40 if [ -f ./mkfile ]; then mk PREFIX=$PREFIX MANPREFIX=$MANPREFIX MANDIR=$MANDIR DESTDIR=$DESTDIR install
41 elif [ -f ./[mM]akefile ]; then make PREFIX=$PREFIX MANPREFIX=$MANPREFIX MANDIR=$MANDIR DESTDIR=$DESTDIR install
42 elif [ -f ./GNUmakefile ]; then make PREFIX=$PREFIX MANPREFIX=$MANPREFIX MANDIR=$MANDIR DESTDIR=$DESTDIR install
43 elif [ -f _/build.ninja ]; then DESTDIR=$DESTDIR ninja -C _ install
44 elif [ -f ./build.zig ]; then zig build --prefix "$PREFIX" install
45 elif [ -f ./Cargo.toml ]; then cargo install --path . --root "${DESTDIR}${PREFIX}"
46 fi
47
48 (cd "$DESTDIR"; tar -cvj *) > /tmp/$t
49
50 printf '\n\t> %s\n' $(readlink -f /tmp/$t)
51
52 echo
53 doas pm -avf /tmp/$t