60 lines
1.6 KiB
Bash
Executable File
60 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
# If number of arguments not equal to two
|
|
if [ $# -ne 2 ] ; then
|
|
echo "invalid argument"
|
|
exit 1
|
|
fi
|
|
|
|
DOT_ENV_FILE="$1"
|
|
FUNCTION_TO_CALL="$2"
|
|
|
|
alpine_source() {
|
|
find "$CACHE_DIR" -name "$RELEASE_BASENAME.tar.gz" -type f | grep -q . || \
|
|
wget "$ALPINE_MIRROR/$RELEASE_VERSION/releases/$ALPINE_ARCH/$RELEASE_BASENAME.tar.gz" -O "$CACHE_DIR/$RELEASE_BASENAME.tar.gz"
|
|
|
|
mkdir -p "$CACHE_DIR/$RELEASE_BASENAME"
|
|
|
|
find "$CACHE_DIR" -name "$RELEASE_BASENAME" -type d -empty -exec \
|
|
tar --directory "$CACHE_DIR/$RELEASE_BASENAME" --extract --gzip --same-permissions --strip 1 --file="$CACHE_DIR/$RELEASE_BASENAME.tar.gz" \;
|
|
}
|
|
|
|
tailspin_bin() {
|
|
find "$CACHE_DIR" -name tailspin.tar.gz -type f | grep -q . || \
|
|
wget https://github.com/bensadeh/tailspin/releases/download/4.0.0/tailspin-aarch64-unknown-linux-musl.tar.gz -O "$CACHE_DIR/tailspin.tar.gz"
|
|
|
|
mkdir -p "$CACHE_DIR/tailspin"
|
|
|
|
find "$CACHE_DIR/tailspin" -type d -empty -exec tar xz -f "$CACHE_DIR/tailspin.tar.gz" -C "$CACHE_DIR/tailspin" \;
|
|
}
|
|
|
|
# Private function names start with underscore
|
|
_init() {
|
|
. "$DOT_ENV_FILE"
|
|
|
|
mkdir -p "$CACHE_DIR/aport"
|
|
mkdir -p "$CACHE_DIR/extras"
|
|
mkdir -p secrets
|
|
}
|
|
|
|
# Second argument is supposed to be name of one of the functions declared above
|
|
# functions starting with underscore are ignored (considered private)
|
|
FUNCTIONS=$(cat "$0" | awk '/\(\) {/ {print $1}' | rev | cut -c3- | rev | grep "^[^_]")
|
|
FOUND_FN=0
|
|
for FN in $FUNCTIONS; do
|
|
if [ "$FN" = "$FUNCTION_TO_CALL" ]; then
|
|
FOUND_FN=1
|
|
fi
|
|
done
|
|
|
|
if [ $FOUND_FN -eq 1 ]; then
|
|
_init
|
|
|
|
echo "Calling $FUNCTION_TO_CALL"
|
|
$FUNCTION_TO_CALL
|
|
else
|
|
echo "invalid argument"
|
|
exit 1
|
|
fi
|