-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall
executable file
·73 lines (56 loc) · 1.57 KB
/
install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env bash
# Required variables
MODNAME="${MODNAME:-$MOD}"
INSTALLDIR="${DESTDIR:-$INSTALLDIR}"
[ -z "$MODNAME" ] && exit 1
[ -z "$INSTALLDIR" ] && exit 1
# $INSTALLDIR is the parent folder
INSTALLDIR="$INSTALLDIR/$MODNAME"
# balatro-mods directory
WORKDIR="$(dirname "$(realpath "${BASH_SOURCE[@]}")")" # dev environment
WORKSPACE="$(dirname "$WORKDIR")" # project workspace
MODDIR="$WORKSPACE/$MODNAME"
TARGET="${1:-dev}"
# files to skip from copy
IGNORE=('README.md'
'.gitignore'
'images'
'.luarc.json')
IGNORE_FILES=("${IGNORE_FILES:-${IGNORE[@]}}")
pushdir() {
pushd "$1" &>/dev/null || exit 1
}
popdir() {
popd &>/dev/null || exit 1
}
do_install() {
local from="$1"
local to="$2"
[ ! -d "$to" ] && mkdir -p "$to"
pushdir "$from"
for file in *; do
if [[ ! "${IGNORE_FILES[*]}" =~ $file ]]; then
cp -r "$from/$file" "$to/"
fi
done
popdir
}
if [ "$TARGET" == "dev" ]; then
echo ":: Installing for development..."
echo ":: Installing files for $MODNAME"
do_install "$MODDIR" "$INSTALLDIR"
else
echo ":: Installing for release..."
echo ":: Installing files for $MODNAME..."
do_install "$MODDIR" "$INSTALLDIR"
echo ":: Installng common files..."
do_install "$WORKSPACE/common" "$INSTALLDIR/common"
echo ":: Creating release file..."
BASEINSTALL="$(realpath "$INSTALLDIR/..")"
pushdir "$BASEINSTALL"
RELFILENAME="$MODNAME-v$(cat "$MODDIR/VERSION")".zip
SUMSFILENAME="$RELFILENAME.sha256sums"
zip -r9 "$BASEINSTALL/$RELFILENAME" "$MODNAME"
sha256sum "$RELFILENAME" > "$SUMSFILENAME"
popdir
fi