From 8c87a657236c64ff640589e2d27cb0b347f3691a Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Tue, 11 Sep 2012 15:50:08 +0100 Subject: build: Fail if user hasn't set user.name (or GIT_AUTHOR_NAME) Users in a VM may be running as 'root' so inferring from the username is often useless. Since build branches are pushed to a server it is useful to enforce useful onwership info. --- morphlib/git.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'morphlib/git.py') diff --git a/morphlib/git.py b/morphlib/git.py index 0a4b01f4..d8169c93 100644 --- a/morphlib/git.py +++ b/morphlib/git.py @@ -135,6 +135,18 @@ class Submodules(object): def __len__(self): return len(self.submodules) +def get_user_name(runcmd): + '''Get user.name configuration setting. Complain if none was found.''' + if 'GIT_AUTHOR_NAME' in os.environ: + return os.environ['GIT_AUTHOR_NAME'].strip() + try: + return runcmd(['git', 'config', 'user.name']).strip() + except cliapp.AppException: + raise cliapp.AppException( + 'No git user info found. Please set your identity, using: \n' + ' git config --global user.name "My Name"\n' + ' git config --global user.email "me@example.com"\n') + def set_remote(runcmd, gitdir, name, url): '''Set remote with name 'name' use a given url at gitdir''' -- cgit v1.2.1