forked from defunkt/toes
37 lines
986 B
Bash
Executable File
37 lines
986 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Pre-builds bare git repos for bundled apps so the install script
|
|
# doesn't need to run any git commands.
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
ROOT="$SCRIPT_DIR/.."
|
|
APPS_DIR="$ROOT/apps"
|
|
OUT_DIR="$ROOT/dist/repos"
|
|
|
|
rm -rf "$OUT_DIR"
|
|
mkdir -p "$OUT_DIR"
|
|
|
|
for app_dir in "$APPS_DIR"/*/; do
|
|
app=$(basename "$app_dir")
|
|
[ -f "$app_dir/package.json" ] || continue
|
|
|
|
tmp=$(mktemp -d)
|
|
tar -C "$app_dir" \
|
|
--exclude='node_modules' \
|
|
--exclude='logs' \
|
|
--exclude='current' \
|
|
--exclude='[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9]' \
|
|
-cf - . | tar -C "$tmp" -xf -
|
|
|
|
git -C "$tmp" init -b main -q
|
|
git -C "$tmp" add -A
|
|
git -C "$tmp" -c user.name=toes -c user.email=toes@localhost commit -q -m "install"
|
|
git clone --bare -q "$tmp" "$OUT_DIR/$app.git"
|
|
git -C "$OUT_DIR/$app.git" config http.receivepack true
|
|
|
|
rm -rf "$tmp"
|
|
echo " $app"
|
|
done
|
|
|
|
echo ">> Bare repos built in dist/repos/"
|