[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