diff --git a/bin/save-git-folder b/bin/save-git-folder new file mode 100755 index 0000000..b163bca --- /dev/null +++ b/bin/save-git-folder @@ -0,0 +1,12 @@ +#!/bin/bash + +save-git-folder() { + echo "Save git refs to .gitmodules.csv." + + local git_folders=$(ls-git-folder .) + echo "path,rev" > ".gitmodules.csv" + for git_folder in $git_folders; do + local commit_ref=$(git -C "$git_folder" rev-parse HEAD) + echo "$git_folder,$commit_ref" >> ".gitmodules.csv" + done +} diff --git a/library.md b/library.md index 689d748..41b94c2 100644 --- a/library.md +++ b/library.md @@ -372,6 +372,11 @@ rows+=("stage-git-folder|[path]|Stage all files in git folders from .gitmodules rows+=("status-git-folder|[path]|Show status of git folders from .gitmodules file.") ``` +### save-git-folder + +```bash +rows+=("save-git-folder||Save references to .gitmodules.csv.") +``` ### update-submodule ```bash diff --git a/task.template b/task.template index 3c12585..36bfb35 100755 --- a/task.template +++ b/task.template @@ -44,6 +44,7 @@ help-table() { rows+=("log-success||Colored output for success.") rows+=("log-warning||Colored output for warnings.") rows+=("===Git===| | ") + rows+=("add-git-folder|[branch][url][path]|Add git folder to .gitmodules and .gitmodule.csv.") rows+=("aggregate-git-folders|[path]|Run gitaggregate for the repos.yaml.") rows+=("commit-git-folder|[message][path]|Commit all changes in git folders in path.") rows+=("clean-git-folder|[path]|Clean git folder.")