summaryrefslogtreecommitdiffhomepage
path: root/services/repos/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'services/repos/scripts')
-rwxr-xr-xservices/repos/scripts/clone-repos.sh16
-rwxr-xr-xservices/repos/scripts/fetch-repos.sh12
-rwxr-xr-xservices/repos/scripts/make-repo-list.sh16
3 files changed, 44 insertions, 0 deletions
diff --git a/services/repos/scripts/clone-repos.sh b/services/repos/scripts/clone-repos.sh
new file mode 100755
index 00000000..e4ea7ffc
--- /dev/null
+++ b/services/repos/scripts/clone-repos.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+for url in $(grep '^repo\.homepage=' repos.cgitrc | sed 's/^repo\.homepage=//'); do
+ repo_name=$(basename "$url" .git)
+ repo_path="repos/${repo_name}.git"
+
+ if [[ -d "$repo_path" ]]; then
+ echo "Skipping $repo_name"
+ else
+ echo "Cloning $repo_name from $url"
+ git clone --bare "$url" "$repo_path"
+ sleep 5
+ fi
+done
diff --git a/services/repos/scripts/fetch-repos.sh b/services/repos/scripts/fetch-repos.sh
new file mode 100755
index 00000000..e8e9d4ea
--- /dev/null
+++ b/services/repos/scripts/fetch-repos.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+for repo_path in repos/*; do
+ if [[ -d "$repo_path" ]]; then
+ repo_name=$(basename "$repo_path" .git)
+ echo "Fetching $repo_name"
+ git -C "$repo_path" fetch --tags --prune origin
+ sleep 5
+ fi
+done
diff --git a/services/repos/scripts/make-repo-list.sh b/services/repos/scripts/make-repo-list.sh
new file mode 100755
index 00000000..73e7be68
--- /dev/null
+++ b/services/repos/scripts/make-repo-list.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cat < /dev/null > repos.cgitrc
+for repo in $(gh repo list --limit 999 --source --visibility public --json name --jq '.[].name'); do
+ cat >> repos.cgitrc <<EOS
+repo.url=${repo}
+repo.path=/src/${repo}.git
+repo.name=${repo}
+repo.desc=${repo}
+repo.owner=nsfisis
+repo.homepage=https://github.com/nsfisis/${repo}
+
+EOS
+done