You've already forked fruix-bootstrap
39 lines
1.1 KiB
Bash
Executable File
39 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
guix_source_url=${GUIX_SOURCE_URL:-https://git.teralink.net/tribes/guix.git}
|
|
guix_source_dir=${GUIX_SOURCE_DIR:-$HOME/.local/opt/fruix-builder/src/guix}
|
|
metadata_target=${METADATA_OUT:-}
|
|
|
|
command -v git >/dev/null 2>&1 || {
|
|
echo "git is required" >&2
|
|
exit 1
|
|
}
|
|
|
|
mkdir -p "$(dirname "$guix_source_dir")"
|
|
|
|
if [ -d "$guix_source_dir/guix" ]; then
|
|
printf 'Using existing Guix source tree: %s\n' "$guix_source_dir"
|
|
else
|
|
rm -rf "$guix_source_dir"
|
|
printf 'Cloning Guix source from: %s\n' "$guix_source_url"
|
|
git clone "$guix_source_url" "$guix_source_dir" >"$guix_source_dir.clone.log" 2>&1
|
|
fi
|
|
|
|
resolved_commit=$(git -C "$guix_source_dir" rev-parse HEAD)
|
|
metadata_file=$guix_source_dir/.fruix-bootstrap-guix-source.txt
|
|
cat >"$metadata_file" <<EOF
|
|
guix_source_url=$guix_source_url
|
|
guix_source_dir=$guix_source_dir
|
|
guix_source_commit=$resolved_commit
|
|
EOF
|
|
|
|
if [ -n "$metadata_target" ]; then
|
|
mkdir -p "$(dirname "$metadata_target")"
|
|
cp "$metadata_file" "$metadata_target"
|
|
fi
|
|
|
|
printf 'PASS setup-guix-source\n'
|
|
printf '%s\n' '--- metadata ---'
|
|
cat "$metadata_file"
|