/stdhome

To get this branch, use:
bzr branch http://bzr.ed.am/stdhome

« back to all changes in this revision

Viewing changes to lib/stdhome/repo.py

  • Committer: Tim Marston
  • Date: 2016-02-13 11:38:50 UTC
  • Revision ID: tim@ed.am-20160213113850-iaplsdx6h1y4l21b
switch to lzip

Show diffs side-by-side

added added

removed removed

21
21
 
22
22
import os
23
23
import the, util
24
 
from vcs.vcs import Vcs
 
24
from vcs.bzr import BzrVcs
25
25
 
26
26
 
27
27
class Repo:
31
31
                self.name = name
32
32
                self.dir = os.path.join( the.dir, self.name )
33
33
                self.full_dir = util.canonicalise_path( self.dir )
34
 
                self.vcs = False
 
34
                self.vcs = BzrVcs( self.full_dir )
35
35
 
36
36
 
37
37
        def check_dir_exists( self, should_exist = True ):
 
38
                condition = 'does not' if should_exist else 'already'
38
39
                if os.path.exists( self.full_dir ) != should_exist:
39
 
                        error = 'does not exist' if should_exist else 'already exists'
40
40
                        raise the.program.FatalError(
41
 
                                'repository %s: %s' % ( error, self.dir ) )
42
 
 
43
 
 
44
 
        def detect_vcs( self ):
45
 
                if os.path.exists( self.full_dir ):
46
 
                        for vcs in Vcs.vcses:
47
 
                                instance = Vcs.instantiate_vcs( vcs, self.full_dir )
48
 
                                if instance.has_authority():
49
 
                                        if the.verbose >= 2: print "repo vcs: %s" % vcs
50
 
                                        self.vcs = instance
51
 
                                        break
52
 
                        if self.vcs == False:
53
 
                                raise the.program.FatalError(
54
 
                                        'unknown vcs in repository: %s' % self.dir )
55
 
 
56
 
 
57
 
        def set_vcs( self, vcs ):
58
 
                if Vcs.vcses.count( vcs ) == 1:
59
 
                        self.vcs = Vcs.instantiate_vcs( vcs, self.full_dir )
60
 
                        if the.verbose >= 2: print "repo vcs: %s" % vcs
61
 
                else:
62
 
                        raise the.program.FatalError( 'unknown vcs requested: %s' % vcs )
63
 
 
 
41
                                'repository %s exists: %s' % ( condition, self.dir ) )
64
42
 
65
43
        def __str__( self ):
66
44
                return "Repo( %s: %s )" % ( self.name, self.dir )