aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Powers <mark@marks.kitchen>2021-09-12 18:14:51 -0500
committerMark Powers <mark@marks.kitchen>2021-09-12 18:14:51 -0500
commite8f9e7b7642fc9095240f1ce9dc99937b7e6585c (patch)
tree05c85cd74219d0a11bdf5e0ea096db49cbca887a
parentf576ed38912bd5132412b5c4ee75d25f564e10f9 (diff)
Begin migrate to repo.py
-rwxr-xr-xrepo.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/repo.py b/repo.py
new file mode 100755
index 0000000..1a127ae
--- /dev/null
+++ b/repo.py
@@ -0,0 +1,45 @@
+#!/usr/bin/python3
+
+import requests
+import argparse
+import subprocess
+
+gitweb_url = "https://git.marks.kitchen"
+
+def list_repos(args):
+ r = requests.get(f"{gitweb_url}/repos.cgi")
+ for line in r.text.splitlines():
+ title, remote, desc = line.split(",", 2)
+ print(title)
+ print("\t", desc)
+ print("\t", remote)
+
+def clone_repo(args):
+ r = requests.get(f"{gitweb_url}/repos.cgi")
+ for line in r.text.splitlines():
+ title, remote, _ = line.split(",", 2)
+ if title == args["repo"]:
+ subprocess.run(["git", "clone", remote])
+
+def main():
+ parser = argparse.ArgumentParser("wikijscmd")
+ parser.set_defaults(command=None)
+ subparsers = parser.add_subparsers()
+
+ parser_list = subparsers.add_parser("list", help="list repos")
+ parser_list.set_defaults(command=list_repos)
+
+ parser_clone = subparsers.add_parser("clone", help="clone a repo")
+ parser_clone.add_argument("repo", type=str, help="repo name")
+ parser_clone.set_defaults(command=clone_repo)
+
+ args = vars(parser.parse_args())
+ callback = args["command"]
+ if callback is None:
+ parser.print_help()
+ else:
+ del args["command"]
+ callback(args)
+
+if __name__ == "__main__":
+ main()