comparison python/setup_repo.py @ 401:f652f9d4765b

flesh out
author Jeff Hammel <jhammel@mozilla.com>
date Tue, 30 Jul 2013 03:30:30 -0700
parents 8964b285c2f7
children c00b70509fff
comparison
equal deleted inserted replaced
400:8964b285c2f7 401:f652f9d4765b
38 def main(args=sys.argv[1:]): 38 def main(args=sys.argv[1:]):
39 39
40 # parse command line arguments 40 # parse command line arguments
41 parser = OptionParser('%prog [options] location') 41 parser = OptionParser('%prog [options] location')
42 parser.add_option('-m', '--message', dest='message', 42 parser.add_option('-m', '--message', dest='message',
43 help='commit message') 43 default='initial commit',
44 help='commit message [Default: %default]')
44 parser.add_option('-u', '--remote-url', dest='remote_url', 45 parser.add_option('-u', '--remote-url', dest='remote_url',
45 default="http://k0s.org/hg/", 46 default="http://k0s.org/hg/",
46 help="URL of host hg repository collection [Default: %default]") 47 help="URL of host hg repository collection [Default: %default]")
47 parser.add_option('-p', '--remote-path', dest='remote_path', 48 parser.add_option('-p', '--remote-path', dest='remote_path',
48 help="remote path of hg repository links; otherwise taken from --remote-url, if specified") 49 help="remote path of hg repository links; otherwise taken from --remote-url, if specified")
50 parser.add_option
49 options, args = parser.parse_args(args) 51 options, args = parser.parse_args(args)
50 if len(args) != 1: 52 if len(args) != 1:
51 parser.print_usage() 53 parser.print_usage()
52 parser.exit() 54 parser.exit()
53 # TODO: sanity check for remote_url, remote_path 55 # TODO: sanity check for remote_url, remote_path
54 56
55 # setup repository 57 # setup repository
56 name = os.path.basename(directory) 58 directory = args[0]
57 call(['hg', 'init']) 59 name = os.path.basename(directory) # XXX unnecessary?
58 call(['hg', 'add']) 60 call(['hg', 'init', directory])
59 call(['hg', 'commit', '-m', options.message or 'initial commit of %s' %name]) 61 call(['hg', 'add', '-R', directory])
62 call(['hg', 'commit', '-m', options.message, '-R', directory])
60 63
61 # setup remote, if specified 64 # setup remote, if specified
62 if options.remote_url: 65 if options.remote_url:
63 66
64 # parse remote URL 67 # parse remote URL
69 remote_host, remote_path = remote_path.split(':', 1) 72 remote_host, remote_path = remote_path.split(':', 1)
70 else: 73 else:
71 remote_path = path 74 remote_path = path
72 75
73 # setup remote repository 76 # setup remote repository
74 call(['ssh', HOST, "cd %s/%s && hg init && hg add && hg ci -m '%s'" % (repo, name, options.message or 'initial commit of %s' % name)]) 77 call(['ssh', host, "mkdir -p cd %s/%s && hg init && hg add && hg ci -m '%s'" % (repo, name, options.message)])
75 78
76 # write local .hgrc file 79 # write local .hgrc file
77 # TODO: use ConfigParser 80 # TODO: use ConfigParser
78 f = file(os.path.join('.hg', 'hgrc'), 'w') 81 f = file(os.path.join('.hg', 'hgrc'), 'w')
79 print >> f, HGRC % { 'host': HOST, 'repo': repo, 'name': name} 82 print >> f, HGRC % { 'host': HOST, 'repo': repo, 'name': name}
80 83
84 # push changes
85 call(['hg', 'push', '-R', directory])
86
81 if __name__ == '__main__': 87 if __name__ == '__main__':
82 main() 88 main()