[projects/git-slug: 20/170] Read configuration from ~/.gitconfig file

glen glen at pld-linux.org
Mon Sep 21 21:40:29 CEST 2015


commit f17089c277f003e1a9820e90b742f9bf2ea17a1a
Author: Kacper Kornet <draenog at pld-linux.org>
Date:   Fri Sep 16 21:28:55 2011 +0100

    Read configuration from ~/.gitconfig file
    
    The command line parameters can be also specified in [PLD] section
    of ~/.gitconfig file.

 slug.py | 26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)
---
diff --git a/slug.py b/slug.py
index 24cbc2b..d5e7fd3 100755
--- a/slug.py
+++ b/slug.py
@@ -11,6 +11,7 @@ import threading
 import argparse
 
 import signal
+import configparser
 
 from git_slug.gitconst import GITSERVER, GIT_REPO, GIT_REPO_PUSH, REMOTEREFS
 from git_slug.gitrepo import GitRepo, GitRepoError
@@ -32,11 +33,22 @@ class ThreadFetch(threading.Thread):
             print('------', package, '------\n' + stderr.decode('utf-8'))
             self.queue.task_done()
 
-def get_user():
-        email=GitRepo().configvalue('user.email')
-        if email:
-            email = email.partition('@')[0]
-        return email
+def readconfig(path):
+    config = configparser.ConfigParser(delimiters='=', interpolation=None, strict=False)
+    config.read(path)
+    optionslist = {}
+    if config.has_option('user','email'):
+        optionslist['user'] = config['user']['email'].partition('@')[0]
+    for option in ('newpkgs', 'prune'):
+        if config.has_option('PLD',option):
+            optionslist[option] = config.getboolean('PLD', option)
+    for option in ('branch', 'depth', 'dirpattern', 'packagesdir', 'remoterefs'):
+        if config.has_option('PLD',option):
+            optionslist[option] = config.get('PLD', option)
+    for option in ('j'):
+        if config.has_option('PLD',option):
+            optionslist[option] = config.getint('PLD', option)
+    return optionslist
 
 def initpackage(name, options):
     repo = GitRepo(os.path.join(options.packagesdir, name))
@@ -117,8 +129,7 @@ common_options = argparse.ArgumentParser(add_help=False)
 common_options.add_argument('-d', '--packagesdir', help='local directory with git repositories',
     default=os.path.join(os.getenv('HOME'),'PLD_clone/packages'))
 common_options.add_argument('-u', '--user',
-        help='the user name to register for pushes for new repositories',
-        default = get_user())
+        help='the user name to register for pushes for new repositories')
 
 parser = argparse.ArgumentParser(description='PLD tool for interaction with git repos',
         formatter_class=argparse.ArgumentDefaultsHelpFormatter)
@@ -143,5 +154,6 @@ create = subparsers.add_parser('init', help='init new repository', parents=[comm
 create.add_argument('packages', nargs='+', help='list of packages to create')
 create.set_defaults(func=create_packages)
 
+parser.set_defaults(**readconfig(os.path.expanduser('~/.gitconfig')))
 options = parser.parse_args()
 options.func(options)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/projects/git-slug.git/commitdiff/4ed64f73960519a2f4fd04c42950b2c96ae795c5



More information about the pld-cvs-commit mailing list