Patchwork [U-Boot] PATCH 4/4] patman: Handle searching of patman config

login
register
mail settings
Submitter Vikram Narayanan
Date April 25, 2012, 3:45 p.m.
Message ID <4F981C2D.4080702@gmail.com>
Download mbox | patch
Permalink /patch/155009/
State Superseded, archived
Delegated to: Anatolij Gustschin
Headers show

Comments

Vikram Narayanan - April 25, 2012, 3:45 p.m.
patman shouts when it couldn't find a $(HOME)/.config/patman file.
Also, it couldn't create patch files without the above config file.
Handle it in a sane way by creating a new one for the user.


Signed-off-by: Vikram Narayanan <vikram186@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
---
 tools/patman/settings.py |   26 ++++++++++++++++++++++++--
 1 files changed, 24 insertions(+), 2 deletions(-)
Simon Glass - April 26, 2012, 6:27 p.m.
Hi Vikram,

On Thu, Apr 26, 2012 at 3:45 AM, Vikram Narayanan <vikram186@gmail.com>wrote:

> patman shouts when it couldn't find a $(HOME)/.config/patman file.
> Also, it couldn't create patch files without the above config file.
> Handle it in a sane way by creating a new one for the user.
>
> The title of this patch is misisng a [.


>
> Signed-off-by: Vikram Narayanan <vikram186@gmail.com>
> Cc: Simon Glass <sjg@chromium.org>
> ---
>  tools/patman/settings.py |   26 ++++++++++++++++++++++++--
>  1 files changed, 24 insertions(+), 2 deletions(-)
>
> diff --git a/tools/patman/settings.py b/tools/patman/settings.py
> index 049c709..ea8661b 100644
> --- a/tools/patman/settings.py
> +++ b/tools/patman/settings.py
> @@ -61,6 +61,22 @@ def ReadGitAliases(fname):
>
>     fd.close()
>
> +def CreatePatmanConfigFile(config_fname):
> +    name = raw_input("Enter name: ")
> +    email = raw_input("Enter email: ")
>

This is fine, but for bonus points I wonder if you can pick these up from
~/.gitconfig by default, and use something like this:

    readline.set_startup_hook(lambda: readline.insert_text('default email'))

(you would need 'import readline' somewhere, and the function to read the
bits from .gitconfig should probably go in gitutil)

Anyway that's just an idea, feel free to ignore.


> +
> +    try:
> +        FILE = open(config_fname,"w")
>

Low case variable please

Also please use single quote unless you need double quote (that's the code
style). And space after comma.



> +    except IOError:
> +        print "Couldn't create patman config file\n"
>

I think you should return or except in here, otherwise you fall through and
get an undefined variable.


> +
> +    FILE.write("[alias]\nme: ")
> +    FILE.write(name);
> +    FILE.write(" <");
> +    FILE.write(email);
> +    FILE.write(">")
>

How about something like:

print '[alias]\nme: %s <%email>' % (name, email)


> +    FILE.close();
> +
>  def Setup(config_fname=''):
>     """Set up the settings module by reading config files.
>
> @@ -70,8 +86,14 @@ 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)
> +
> +    exists = os.path.exists(config_fname)
> +
> +    if exists == False:
>

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
>
>
Regards,
Simon

Patch

diff --git a/tools/patman/settings.py b/tools/patman/settings.py
index 049c709..ea8661b 100644
--- a/tools/patman/settings.py
+++ b/tools/patman/settings.py
@@ -61,6 +61,22 @@  def ReadGitAliases(fname):
 
     fd.close()
 
+def CreatePatmanConfigFile(config_fname):
+    name = raw_input("Enter name: ")
+    email = raw_input("Enter email: ")
+
+    try:
+        FILE = open(config_fname,"w")
+    except IOError:
+        print "Couldn't create patman config file\n"
+
+    FILE.write("[alias]\nme: ")
+    FILE.write(name);
+    FILE.write(" <");
+    FILE.write(email);
+    FILE.write(">")
+    FILE.close();
+
 def Setup(config_fname=''):
     """Set up the settings module by reading config files.
 
@@ -70,8 +86,14 @@  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)
+
+    exists = os.path.exists(config_fname)
+
+    if exists == False:
+        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(',')