summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsync-github.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/sync-github.py b/sync-github.py
index 87a3009..73499b7 100755
--- a/sync-github.py
+++ b/sync-github.py
@@ -3,6 +3,7 @@ from pygithub3 import Github
import sys
import os
import os.path
+import subprocess
class LocalRepo:
def __init__(self, name, description, homepage, path):
@@ -16,19 +17,18 @@ class LocalRepo:
def localRepos(repo_list, repo_base_dir, url_base, blacklist):
repo_names = open(repo_list, "r")
repos = []
+ def gitSetting(repo_dir, key):
+ value = subprocess.Popen(["git", "--git-dir=%s" % repo_dir, "config", "--get", key], stdout=subprocess.PIPE).communicate()[0].strip()
+ if len(value) == 0:
+ return None
+ return value
for repo_name in repo_names:
repo_name = repo_name.rstrip()
repo_dir = os.path.join(repo_base_dir, repo_name)
repo_name = repo_name[:-4]
- description = os.path.join(repo_dir, "description")
- if os.path.exists(description):
- description = open(description, "r").read().strip()
- else:
- description = None
- homepage = os.path.join(repo_dir, "homepage")
- if os.path.exists(homepage):
- homepage = open(homepage, "r").read().strip()
- else:
+ description = gitSetting(repo_dir, "gitweb.description")
+ homepage = gitSetting(repo_dir, "gitweb.homepage")
+ if homepage == None:
homepage = url_base + repo_name
repo = LocalRepo(repo_name, description, homepage, repo_dir)
if repo.name not in blacklist:
@@ -53,7 +53,7 @@ def main(argv):
print "[#] Collecting local repositories."
local_repos = localRepos(repo_list, repo_dir_base, url_base, argv[6:])
-
+
print "[#] Collecting remote repositories."
remote_repos = github.repos.list().all()