[U-Boot] [PATCH v3] patman: Handle creation of patman config
Simon Glass
sjg at chromium.org
Tue May 1 07:07:31 CEST 2012
On Mon, Apr 30, 2012 at 8:46 PM, Vikram Narayanan <vikram186 at 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 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 at gmail.com>
> Cc: Simon Glass <sjg at chromium.org>
>
Acked-by: Simon Glass <sjg at 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
>
>
More information about the U-Boot
mailing list