Message ID | 4F9F5C96.3020001@gmail.com |
---|---|
State | Accepted |
Delegated to: | Wolfgang Denk |
Headers | show |
On Mon, Apr 30, 2012 at 8:46 PM, Vikram Narayanan <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 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 >
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(',')
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(-)