Revision 5d0dd5cc

b/autopkg.conf
1
# autopkg.py configuration file
2
devflow
b/devflow/autopkg.py
51 51

  
52 52
AVAILABLE_MODES = ["release", "snapshot"]
53 53

  
54
# TODO: Make the PACKAGES tuple configurable,
55
# read it from autopkg.conf in the git toplevel directory.
56
PACKAGES = ("devflow", )
54

  
55
def get_packages_to_build(toplevel_dir):
56
    conf_file = os.path.join(toplevel_dir, "autopkg.conf")
57
    try:
58
        f = open(conf_file)
59
    except IOError:
60
        raise RuntimeError("Configuration file %s does not exist!" % conf_file)
61

  
62
    lines = [l.strip() for l in f.readlines()]
63
    l = [l for l in lines if not l.startswith("#")]
64
    f.close()
65
    return l
57 66

  
58 67

  
59 68
def main():
......
90 99
        raise ValueError(red("Invalid argument! Mode must be one: %s"
91 100
                         % ", ".join(AVAILABLE_MODES)))
92 101

  
93
    # Do not prompt for merge message. Required for some Git versions
94 102
    os.environ["GITFLOW_BUILD_MODE"] = mode
95 103

  
96 104
    try:
......
98 106
    except git.git.InvalidGitRepositoryError:
99 107
        raise RuntimeError(red("Current directory is not git repository."))
100 108

  
109
    toplevel = original_repo.working_dir
101 110
    if original_repo.is_dirty() and not options.force_dirty:
102
        toplevel = original_repo.working_dir
103 111
        raise RuntimeError(red("Repository %s is dirty." % toplevel))
104 112

  
105 113
    repo_dir = options.repo_dir
......
108 116
        print_green("Created temporary directory '%s' for the cloned repo."
109 117
                    % repo_dir)
110 118

  
119
    packages = get_packages_to_build(toplevel)
120
    if packages:
121
        print_green("Will build the following packages:\n" + \
122
                    "\n".join(packages))
123
    else:
124
        raise RuntimeError("Configuration file is empty."
125
                           " No packages to build.")
126

  
111 127
    repo = original_repo.clone(repo_dir)
112 128
    print_green("Cloned current repository to '%s'." % repo_dir)
113 129

  
......
156 172
        repo.git.tag(debian_tag)
157 173
        repo.git.tag(python_tag, branch)
158 174

  
159
    for package in PACKAGES:
175
    for package in packages:
160 176
        # python setup.py should run in its directory
161 177
        cd(package)
162 178
        package_dir = repo_dir + "/" + package

Also available in: Unified diff