diff --git a/scripts/vendor-update.fish b/scripts/vendor-update.fish new file mode 100755 index 0000000000000000000000000000000000000000..b5338f6460d15090b36423bc887df6e0d1fe09f1 --- /dev/null +++ b/scripts/vendor-update.fish @@ -0,0 +1,82 @@ +#!/usr/bin/env fish +# +# Update git-subtree-vendored repositories listed in vendor/sources. +# +# vendor/sources format (tab-separated): +# name url branch +# +# Lines starting with # are ignored. +# +# Usage: +# scripts/vendor-update.fish # update all vendored repos +# scripts/vendor-update.fish forge # update only vendor/forge + +set repo_root (git -C (status dirname) rev-parse --show-toplevel) + +if test $status -ne 0 + echo "error: not inside a git repository" >&2 + exit 1 +end + +cd $repo_root + +set sources_file vendor/sources + +if not test -f $sources_file + echo "error: $sources_file not found" >&2 + exit 1 +end + +set filter $argv +set failed 0 +set found 0 + +while read -l line + # Skip comments and blank lines + string match -qr '^\s*#' -- $line; and continue + string match -qr '^\s*$' -- $line; and continue + + set parts (string split \t -- $line) + if test (count $parts) -ne 3 + echo "skip: malformed line: $line" >&2 + set failed (math $failed + 1) + continue + end + + set name $parts[1] + set url $parts[2] + set branch $parts[3] + + # If specific targets were given, skip non-matching entries + if test (count $filter) -gt 0 + contains $name $filter; or continue + end + + set found (math $found + 1) + + if not test -d vendor/$name + echo "skip: vendor/$name does not exist (run 'git subtree add' first)" >&2 + set failed (math $failed + 1) + continue + end + + echo ":: updating vendor/$name from $url ($branch)" + git subtree pull --prefix=vendor/$name $url $branch --squash + if test $status -ne 0 + echo "error: failed to update vendor/$name" >&2 + set failed (math $failed + 1) + else + echo ":: vendor/$name updated" + end + echo +end <$sources_file + +if test $found -eq 0 + echo "No matching vendored repos found." >&2 + exit 1 +end + +if test $failed -gt 0 + echo "$failed vendor update(s) failed" >&2 + exit 1 +end diff --git a/skills/charm-bubbles b/skills/charm-bubbles new file mode 120000 index 0000000000000000000000000000000000000000..2f0d442f62dd6e2e15b69585da4ed0bd64d81ea7 --- /dev/null +++ b/skills/charm-bubbles @@ -0,0 +1 @@ +../vendor/forge/skills/charm-bubbles \ No newline at end of file diff --git a/skills/charm-bubbletea b/skills/charm-bubbletea new file mode 120000 index 0000000000000000000000000000000000000000..ff3c62b9ed56a5f48a98ffbc0f7c23966ba9bc40 --- /dev/null +++ b/skills/charm-bubbletea @@ -0,0 +1 @@ +../vendor/forge/skills/charm-bubbletea \ No newline at end of file diff --git a/skills/charm-ecosystem b/skills/charm-ecosystem new file mode 120000 index 0000000000000000000000000000000000000000..44163a7187066d124ee50a04ac04a4dac5745e53 --- /dev/null +++ b/skills/charm-ecosystem @@ -0,0 +1 @@ +../vendor/forge/skills/charm-ecosystem \ No newline at end of file diff --git a/skills/charm-fang b/skills/charm-fang new file mode 120000 index 0000000000000000000000000000000000000000..9c09a9808d05e63e88578b84bbc170b13fdb0b5c --- /dev/null +++ b/skills/charm-fang @@ -0,0 +1 @@ +../vendor/forge/skills/charm-fang \ No newline at end of file diff --git a/skills/charm-freeze b/skills/charm-freeze new file mode 120000 index 0000000000000000000000000000000000000000..eacb1f4dfc51eae369ea650f86ea87c76098b76d --- /dev/null +++ b/skills/charm-freeze @@ -0,0 +1 @@ +../vendor/forge/skills/charm-freeze \ No newline at end of file diff --git a/skills/charm-glamour b/skills/charm-glamour new file mode 120000 index 0000000000000000000000000000000000000000..8e89109cf3519f8a49f94270aafe8c8751e42745 --- /dev/null +++ b/skills/charm-glamour @@ -0,0 +1 @@ +../vendor/forge/skills/charm-glamour \ No newline at end of file diff --git a/skills/charm-glow b/skills/charm-glow new file mode 120000 index 0000000000000000000000000000000000000000..7f9c5db04d0cbec0d780966b249fa69d62149c4d --- /dev/null +++ b/skills/charm-glow @@ -0,0 +1 @@ +../vendor/forge/skills/charm-glow \ No newline at end of file diff --git a/skills/charm-gum b/skills/charm-gum new file mode 120000 index 0000000000000000000000000000000000000000..30a08dfe5edde5f6cc5be38a9814efd42bccd31c --- /dev/null +++ b/skills/charm-gum @@ -0,0 +1 @@ +../vendor/forge/skills/charm-gum \ No newline at end of file diff --git a/skills/charm-harmonica b/skills/charm-harmonica new file mode 120000 index 0000000000000000000000000000000000000000..77bc9e94c7b83c7f2293a017f86324f8631c5b02 --- /dev/null +++ b/skills/charm-harmonica @@ -0,0 +1 @@ +../vendor/forge/skills/charm-harmonica \ No newline at end of file diff --git a/skills/charm-huh b/skills/charm-huh new file mode 120000 index 0000000000000000000000000000000000000000..65a50590b4efaa5dbf949a2f67128deb3380c86a --- /dev/null +++ b/skills/charm-huh @@ -0,0 +1 @@ +../vendor/forge/skills/charm-huh \ No newline at end of file diff --git a/skills/charm-lipgloss b/skills/charm-lipgloss new file mode 120000 index 0000000000000000000000000000000000000000..91a2883b971c3cb187bfd1977908efce2088022d --- /dev/null +++ b/skills/charm-lipgloss @@ -0,0 +1 @@ +../vendor/forge/skills/charm-lipgloss \ No newline at end of file diff --git a/skills/charm-pop b/skills/charm-pop new file mode 120000 index 0000000000000000000000000000000000000000..0311e559940df3afe88d402a378fc02cdf7fbf9d --- /dev/null +++ b/skills/charm-pop @@ -0,0 +1 @@ +../vendor/forge/skills/charm-pop \ No newline at end of file diff --git a/skills/charm-ultraviolet b/skills/charm-ultraviolet new file mode 120000 index 0000000000000000000000000000000000000000..014d91d572b7b12812ad4d3780772166943ca7c3 --- /dev/null +++ b/skills/charm-ultraviolet @@ -0,0 +1 @@ +../vendor/forge/skills/charm-ultraviolet \ No newline at end of file diff --git a/skills/charm-vhs b/skills/charm-vhs new file mode 120000 index 0000000000000000000000000000000000000000..9f00f2b2d7c44479addf2db8c84dec970e981659 --- /dev/null +++ b/skills/charm-vhs @@ -0,0 +1 @@ +../vendor/forge/skills/charm-vhs \ No newline at end of file diff --git a/vendor/sources b/vendor/sources new file mode 100644 index 0000000000000000000000000000000000000000..f3cfb9d5c29d3a61b94dc51d8f9dc349b7956083 --- /dev/null +++ b/vendor/sources @@ -0,0 +1,4 @@ +# Vendored git subtree sources +# Format: nameurlbranch +# One entry per line. Lines starting with # are ignored. +forge https://github.com/alxxpersonal/forge.git main