2013-05-16 08:00:28 +02:00
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
from argparse import ArgumentParser
|
|
|
|
parser = ArgumentParser(description='Bootstrap Debian for the cloud.')
|
|
|
|
parser.add_argument('--debug', action='store_true',
|
|
|
|
help='Print debugging information')
|
2013-06-09 15:50:00 +02:00
|
|
|
parser.add_argument('manifest', help='Manifest file to use for bootstrapping', metavar='MANIFEST')
|
2013-05-16 08:00:28 +02:00
|
|
|
parser.set_defaults(func=run)
|
|
|
|
|
|
|
|
args = parser.parse_args()
|
|
|
|
args.func(args)
|
|
|
|
|
|
|
|
|
|
|
|
def run(args):
|
2013-06-09 15:50:00 +02:00
|
|
|
from manifest import load_manifest
|
|
|
|
from manifest import get_provider
|
2013-06-09 15:54:30 +02:00
|
|
|
data = load_manifest(args.manifest)
|
2013-06-09 15:50:00 +02:00
|
|
|
provider = get_provider(data)
|
|
|
|
manifest = provider.Manifest(args.manifest, data)
|
2013-06-09 16:15:23 +02:00
|
|
|
|
2013-05-16 08:00:28 +02:00
|
|
|
manifest.validate()
|
|
|
|
manifest.load_plugins()
|
|
|
|
|
2013-06-09 16:23:08 +02:00
|
|
|
from tasklist import TaskList
|
|
|
|
tasklist = TaskList()
|
|
|
|
provider.modify_tasklist(tasklist, manifest)
|
2013-05-16 08:00:28 +02:00
|
|
|
tasklist.plugins(manifest)
|
|
|
|
|
2013-06-09 16:15:23 +02:00
|
|
|
from bootstrapinfo import BootstrapInformation
|
2013-06-09 15:50:00 +02:00
|
|
|
bootstrap_info = BootstrapInformation(manifest=manifest, debug=args.debug)
|
2013-05-16 08:00:28 +02:00
|
|
|
tasklist.run(bootstrap_info)
|