From: Vikram Narayanan <vikram186@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 4/4] patman: Handle creation of patman config
Date: Fri, 27 Apr 2012 22:09:45 +0530 [thread overview]
Message-ID: <4F9ACBD1.1080003@gmail.com> (raw)
patman shouts when it couldn't find a $(HOME)/.config/patman file.
Handle it in a sane way by creating a new one for the user.
It looks for a user.name and user.email in the global .gitconfig
file, waits for the user input if it can't find those.
Signed-off-by: Vikram Narayanan <vikram186@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
---
tools/patman/gitutil.py | 18 ++++++++++++++++++
tools/patman/settings.py | 34 +++++++++++++++++++++++++++++++---
2 files changed, 49 insertions(+), 3 deletions(-)
diff --git a/tools/patman/gitutil.py b/tools/patman/gitutil.py
index 48ca998..2eacb13 100644
--- a/tools/patman/gitutil.py
+++ b/tools/patman/gitutil.py
@@ -357,6 +357,24 @@ def GetAliasFile():
fname = os.path.join(GetTopLevel(), fname.strip())
return fname
+def GetDefaultUserName():
+ """ Gets the user.name from .gitconfig file.
+
+ Returns:
+ User name found in .gitconfig file, or None if none
+ """
+ uname = command.OutputOneLine('git', 'config', '--global', 'user.name')
+ return uname
+
+def GetDefaultUserEmail():
+ """ Gets the user.email from the global .gitconfig file.
+
+ Returns:
+ User's email found in .gitconfig file, or None if none
+ """
+ uemail = command.OutputOneLine('git', 'config', '--global', 'user.email')
+ return uemail
+
def Setup():
"""Set up git utils, by reading the alias files."""
settings.Setup('')
diff --git a/tools/patman/settings.py b/tools/patman/settings.py
index 049c709..03ea307 100644
--- a/tools/patman/settings.py
+++ b/tools/patman/settings.py
@@ -24,7 +24,7 @@ import os
import re
import command
-
+import gitutil
def ReadGitAliases(fname):
"""Read a git alias file. This is in the form used by git:
@@ -61,6 +61,30 @@ def ReadGitAliases(fname):
fd.close()
+def CreatePatmanConfigFile(config_fname):
+ """ Creates a config file under $(HOME)/.config/ if it can't find one.
+
+ Returns:
+ None
+ """
+ name = gitutil.GetDefaultUserName()
+ if name == None:
+ name = raw_input("Enter name: ")
+
+ email = gitutil.GetDefaultUserEmail()
+
+ if email == None:
+ email = raw_input("Enter email: ")
+
+ try:
+ f = open(config_fname, 'w')
+ except IOError:
+ print "Couldn't create patman config file\n"
+ raise
+
+ print >>f, "[alias]\nme: %s <%s>" % (name, email)
+ f.close();
+
def Setup(config_fname=''):
"""Set up the settings module by reading config files.
@@ -70,8 +94,12 @@ def Setup(config_fname=''):
settings = ConfigParser.SafeConfigParser()
if config_fname == '':
config_fname = '%s/.config/patman' % os.getenv('HOME')
- if config_fname:
- settings.read(config_fname)
+
+ if not os.path.exists(config_fname):
+ print "No config file found under ~/.config/\nCreating one...\n"
+ CreatePatmanConfigFile(config_fname)
+
+ settings.read(config_fname)
for name, value in settings.items('alias'):
alias[name] = value.split(',')
--
1.7.4.1
next reply other threads:[~2012-04-27 16:39 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-27 16:39 Vikram Narayanan [this message]
2012-04-30 8:44 ` [U-Boot] [PATCH v2 4/4] patman: Handle creation of patman config Wolfgang Denk
2012-04-30 13:37 ` Vikram Narayanan
2012-04-30 17:10 ` Simon Glass
2012-04-30 17:37 ` Simon Glass
2012-05-01 3:14 ` Vikram Narayanan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F9ACBD1.1080003@gmail.com \
--to=vikram186@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox