Update example config: Support passing arbitrary module options
[mass-build.git] / vcs.py
diff --git a/vcs.py b/vcs.py
index 8acb571aa161a4cb4df82d2a237d2cd77deb0521..c63b2b955985d6e5e76b2c755f2b32f688bad275 100644 (file)
--- a/vcs.py
+++ b/vcs.py
@@ -8,13 +8,12 @@ class Git:
                self.folder = os.path.abspath(folder)
                self.url = url
                self.commit = commit
-       
+
        class _ProgressPrinter(git.remote.RemoteProgress):
                def update(self, op_code, cur_count, max_count=None, message=''):
                        print self._cur_line+(" "*30)+"\r",
-       
+
        def update(self):
-               print "Updating",self.folder
                isBranch = (self.commit.startswith('origin/'))
                if isBranch:
                        branchname = self.commit[len('origin/'):]
@@ -47,6 +46,19 @@ class Git:
                        print "(keeping local patches around)",
                print
 
+       def version(self):
+               repo = git.Repo(self.folder)
+               v = repo.git.describe()
+               if v.startswith('v'): v = v[1:]
+               return v
+
+       def ignore(self, name):
+               with open(os.path.join(self.folder, '.git', 'info', 'exclude'), 'r+') as f:
+                       for line in f:
+                               line = line.replace('\n', '').replace('\r', '')
+                               if line == name: return # is already ignored
+                       print >>f, name # add ignore line
+
 class KDEGit(Git):
        def __init__(self, folder, name, commit):
                Git.__init__(self, folder, 'kde:'+name, commit)
@@ -58,7 +70,6 @@ class SVN:
                self.svnPath = svnPath
        
        def update(self):
-               print "Updating",self.folder
                if os.path.exists(self.folder):
                        os.chdir(self.folder) # go into repository
                        subprocess.check_call(['svn', 'switch', self.svnPath]) # and update to the URL we got