author | Clipperz <info@clipperz.com> | 2013-01-09 11:24:13 (UTC) |
---|---|---|
committer | Clipperz <info@clipperz.com> | 2013-01-09 11:24:13 (UTC) |
commit | 6cfcbb8deeb99b0b88f5ce3b34a5c9aa1877dc57 (patch) (side-by-side diff) | |
tree | ae7ed58da6d0f4ce64b7ae4a4ba3f7b1519471d3 /scripts | |
parent | f6903b9a5670370ef742a02092ab72e4227ddcd9 (diff) | |
parent | 0db1d5c8b18eadc4bd9cfc6603e86227fa94b5a9 (diff) | |
download | clipperz-6cfcbb8deeb99b0b88f5ce3b34a5c9aa1877dc57.zip clipperz-6cfcbb8deeb99b0b88f5ce3b34a5c9aa1877dc57.tar.gz clipperz-6cfcbb8deeb99b0b88f5ce3b34a5c9aa1877dc57.tar.bz2 |
Merge branch 'master' of github.com:clipperz/password-manager
Conflicts:
frontend/beta/css/yui-extensions/basic-dialog.css
-rw-r--r-- | scripts/builder/repository.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/scripts/builder/repository.py b/scripts/builder/repository.py index a47e249..7ac2324 100644 --- a/scripts/builder/repository.py +++ b/scripts/builder/repository.py @@ -1,88 +1,97 @@ #!/usr/bin/env python # -*- coding: UTF-8 -*- def repositoryWithPath (path): try: from mercurial import ui, hg repo = hg.repository(ui.ui(), path) result = HgRepository(repo, path) except: try: from git import Repo - repo = Repo(path) result = GitRepository(repo, path) + except ImportError, exception: print "Failed to import git, please install http://gitorious.org/git-python" raise exception + except: + result = SnapshotRepository('', path) return result #=================================================================== class Repository(object): def __init__ (self, repository, path): self.repository = repository self.path = path def revision (self): raise NotImplementedError() def areTherePendingChanges (self): raise NotImplementedError() def version (self): result = self.revision() if self.areTherePendingChanges(): result = '>>> ' + result + ' <<<' # print "VERSION: " + result return result #=================================================================== class GitRepository(Repository): # http://gitorious.org/git-python def revision (self): try: return self.repository.head.commit.hexsha except: return self.repository.commits()[0].id def areTherePendingChanges (self): try: return self.repository.is_dirty() except TypeError, te: return self.repository.is_dirty #=================================================================== class HgRepository(Repository): # http://mercurial.selenic.com/wiki/MercurialApi def revision (self): return 'hg:' + str(self.repository['tip']) def areTherePendingChanges (self): # TODO: FIXME: repository.status() does not report 'unknown(?)' files. :( return not all(map(lambda fileList: len(fileList) == 0, self.repository.status())) #=================================================================== + +class SnapshotRepository(Repository): + def revision (self): + return 'SNAPSHOT' + + def areTherePendingChanges (self): + return False |