/stdhome

To get this branch, use:
bzr branch http://bzr.ed.am/stdhome
2 by Tim Marston
added global objects (the.repo, the.program), deployment object and implemented
1
# the.py
2
#
3
# Copyright (C) 2013 Tim Marston <tim@edm.am>
4
#
5
# This file is part of stdhome (hereafter referred to as "this program").
6
# See http://ed.am/dev/stdhome for more information.
7
#
8
# This program is free software: you can redistribute it and/or modify
9
# it under the terms of the GNU General Public License as published by
10
# the Free Software Foundation, either version 3 of the License, or
11
# (at your option) any later version.
12
#
13
# This program is distributed in the hope that it will be useful,
14
# but WITHOUT ANY WARRANTY; without even the implied warranty of
15
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
# GNU General Public License for more details.
17
#
18
# You should have received a copy of the GNU General Public License
19
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
21
22
import os
88 by Tim Marston
python3ification
23
from . import util
2 by Tim Marston
added global objects (the.repo, the.program), deployment object and implemented
24
25
26
# the program
27
program = None
28
29
# main command
30
command = None
31
36 by Tim Marston
moved config to its own file and read-in ignore lists
32
# config
33
config = None
34
17 by Tim Marston
read ~/.stdhomerc; commands set repo before run(); program performs late
35
# repo name, set by late_init() to an instance of Repo
36
repo = 'home'
2 by Tim Marston
added global objects (the.repo, the.program), deployment object and implemented
37
8 by Tim Marston
added diff command; moved all command to commands subdir; made stage-revert
38
# verbose level
3 by Tim Marston
added bzr as a vcs backend; finished init command; implemented deployment
39
verbose = 0
2 by Tim Marston
added global objects (the.repo, the.program), deployment object and implemented
40
41
# data directory
42
dir = '~/.stdhome'
43
3 by Tim Marston
added bzr as a vcs backend; finished init command; implemented deployment
44
# fully qualified data dir
45
full_dir = util.canonicalise_path( dir )
46
47
# metadata directory
48
mddir = os.path.join( dir, '.metadata' )
49
50
# fully qualified metadata directory
51
full_mddir = util.canonicalise_path( mddir )
52
8 by Tim Marston
added diff command; moved all command to commands subdir; made stage-revert
53
# home directory
54
home_dir = '~/'
3 by Tim Marston
added bzr as a vcs backend; finished init command; implemented deployment
55
17 by Tim Marston
read ~/.stdhomerc; commands set repo before run(); program performs late
56
# fully qualified home directory, set by late_init()
57
full_home_dir = None
58
59
# config file
60
config_file = os.path.expanduser( '~/.stdhomerc' )
61
62
63
def late_init():
64
65
	global home_dir, full_home_dir
66
	full_home_dir = util.canonicalise_path( home_dir )
88 by Tim Marston
python3ification
67
	if verbose >= 2: print("home-dir at " + home_dir)
17 by Tim Marston
read ~/.stdhomerc; commands set repo before run(); program performs late
68
2 by Tim Marston
added global objects (the.repo, the.program), deployment object and implemented
69
	global repo
36 by Tim Marston
moved config to its own file and read-in ignore lists
70
	if repo is not None:
88 by Tim Marston
python3ification
71
		from .repo import Repo
36 by Tim Marston
moved config to its own file and read-in ignore lists
72
		repo = Repo( repo )
88 by Tim Marston
python3ification
73
		if verbose >= 2: print("repo at " + repo.dir)
63 by Tim Marston
determine and instantiate repo vcs dynamically; for new repos, added default vcs
74
		repo.detect_vcs()