[U-Boot] [PATCH v3] patman: Handle creation of patman config

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 | 37 ++++++++++++++++++++++++++++++++++--- 2 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/tools/patman/gitutil.py b/tools/patman/gitutil.py index 48ca998..59eca99 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..9b7e75d 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,33 @@ def ReadGitAliases(fname):
fd.close()
+def CreatePatmanConfigFile(config_fname): + """Creates a config file under $(HOME)/.config/ if it can't find one. + + Args: + config_fname: Default config filename i.e., $(HOME)/.config/patman + + 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 +97,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(',')

On Mon, Apr 30, 2012 at 8:46 PM, Vikram Narayanan vikram186@gmail.comwrote:
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
Acked-by: Simon Glass sjg@chromium.org
tools/patman/gitutil.py | 18 ++++++++++++++++++ tools/patman/settings.py | 37 ++++++++++++++++++++++++++++++++++--- 2 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/tools/patman/gitutil.py b/tools/patman/gitutil.py index 48ca998..59eca99 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..9b7e75d 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,33 @@ def ReadGitAliases(fname):
fd.close()
+def CreatePatmanConfigFile(config_fname):
- """Creates a config file under $(HOME)/.config/ if it can't find one.
- Args:
config_fname: Default config filename i.e., $(HOME)/.config/patman
- 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 +97,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

Hello Wolfgang,
On 5/1/2012 10:37 AM, Simon Glass wrote:
On Mon, Apr 30, 2012 at 8:46 PM, Vikram Narayanan <vikram186@gmail.com mailto:vikram186@gmail.com> wrote:
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 <http://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 <mailto:vikram186@gmail.com>> Cc: Simon Glass <sjg@chromium.org <mailto:sjg@chromium.org>>
Acked-by: Simon Glass <sjg@chromium.org mailto:sjg@chromium.org>
Can you please take this patch in?
Thanks, Vikram

Dear Vikram Narayanan,
In message 4F9F5C96.3020001@gmail.com you wrote:
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
We discussed before that patman should not place or use any files from the ~/.config/ directory. The agreement wat that this would be changed, please see: http://article.gmane.org/gmane.comp.boot-loaders.u-boot/130553
Best regards,
Wolfgang Denk

Hi,
On Tue, May 22, 2012 at 9:00 AM, Wolfgang Denk wd@denx.de wrote:
Dear Vikram Narayanan,
In message 4F9F5C96.3020001@gmail.com you wrote:
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
We discussed before that patman should not place or use any files from the ~/.config/ directory. The agreement wat that this would be changed, please see: http://article.gmane.org/gmane.comp.boot-loaders.u-boot/130553
OK, so if this goes in after the .config change, it will need rebasing and adjusting.
Regards, Simon
Best regards,
Wolfgang Denk
-- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de grep me no patterns and I'll tell you no lines. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
participants (3)
-
Simon Glass
-
Vikram Narayanan
-
Wolfgang Denk