Beispiel #1
0
def main(args = None):
	opts = docopt.docopt(
		doc = __doc__,
		argv = args)
	try:
		if opts["--no-color"]:
			fckit.disable_colors()
		if opts["--verbose"]:
			fckit.enable_tracing()
		if opts["--directory"]:
			fckit.chdir(opts["--directory"])
		role = Role()
		targets = Targets(
			role = role,
			exclude = opts["--exclude"].split(","),
			warning_flags = opts["--warnings"].split(","),
			repository_url = opts["--repository"])
		for key in opts["TARGETS"]:
			fckit.trace("at %s" % key)
			targets[key].build()
		if os.path.exists(targets["check"].path):
			with open(targets["check"].path, "r") as fp:
				print fckit.magenta(fp.read())
	except fckit.Error as exc:
		raise SystemExit(fckit.red(exc))
Beispiel #2
0
def main(args = None):
	opts = docopt.docopt(
		doc = __doc__,
		argv = args)
	try:
		if opts["--no-color"]:
			fckit.disable_colors()
		if opts["--verbose"]:
			fckit.enable_tracing()
		if opts["setup"]:
			setup(
				toolid = opts["TOOLID"],
				settings = opts["SETTING"],
				manifests = MANIFESTS)
		else:
			bs = BuildStack(
				preferences = fckit.unmarshall("~/buildstack.json"),
				profileid = opts["--profile"],
				manifests = MANIFESTS,
				path = opts["--file"] or opts["--directory"])
			switch = {
				"get": lambda value: bs.get(requirementid = value),
				"clean": lambda _: bs.clean(),
				"compile": lambda _: bs.compile(),
				"run": lambda value: bs.run(entrypointid = value),
				"test": lambda _: bs.test(),
				"release": lambda value: bs.release(
					partid = value,
					message = opts["--message"]),
				"package": lambda value: bs.package(formatid = value),
				"publish": lambda value: bs.publish(repositoryid = value),
				"install": lambda value: bs.install(inventoryid = value),
				"uninstall": lambda value: bs.uninstall(inventoryid = value),
			}
			for target in opts["TARGETS"]:
				key, _, value = target.partition(":")
				if key in switch:
					switch[key](value)
				else:
					raise Error(target, "unknown target, call --help for details")
			bs.flush()
	except fckit.Error as exc:
		raise SystemExit(fckit.red(exc))
Beispiel #3
0
def main(args=None):
    opts = docopt.docopt(doc=__doc__, argv=args)
    try:
        if opts["--no-color"]:
            fckit.disable_colors()
        if opts["--verbose"]:
            fckit.enable_tracing()
        if opts["--directory"]:
            fckit.chdir(opts["--directory"])
        role = Role()
        targets = Targets(role=role,
                          exclude=opts["--exclude"].split(","),
                          warning_flags=opts["--warnings"].split(","),
                          repository_url=opts["--repository"])
        for key in opts["TARGETS"]:
            fckit.trace("at %s" % key)
            targets[key].build()
        if os.path.exists(targets["check"].path):
            with open(targets["check"].path, "r") as fp:
                print fckit.magenta(fp.read())
    except fckit.Error as exc:
        raise SystemExit(fckit.red(exc))
Beispiel #4
0
# copyright (c) 2015 fclaerhout.fr, released under the MIT license.

import unittest, os

import universe, fckit  # 3rd-party

fckit.enable_tracing()


class RoleTest(unittest.TestCase):
    def setUp(self):
        self.cwd = os.getcwd()
        self.tmpdir = fckit.mkdir()
        fckit.chdir(self.tmpdir)

    def tearDown(self):
        fckit.chdir(self.cwd)
        fckit.remove(self.tmpdir)

    def test(self):
        role = universe.Role()
        fckit.mkdir("meta")
        galaxy_info = {"author": "John Doe"}
        manifest = {
            "version": 42,
            "galaxy_info": galaxy_info,
        }
        universe.marshall(obj=manifest, path=role.meta_path)
        self.assertEqual(role.name, os.path.basename(self.tmpdir))
        self.assertEqual(role.get_manifest(), manifest)
        self.assertEqual(role.version, 42)
def main(args = None):
	opts = docopt.docopt(
		doc = __doc__,
		argv = args)
	try:
		if opts["--no-color"]:
			fckit.disable_colors()
		if opts["--verbose"]:
			fckit.enable_tracing()
		if opts["-E"]:
			def warning(*strings):
				raise Error(": ".join(strings))
			globals()["warning"] = warning
		warning_flags = opts["--warnings"].split(",") if opts["--warnings"] else ()
		role = Role(opts["--directory"])
		##################
		# show lifecycle #
		##################
		show_phony_tgt = fckit.BuildTarget(
			path = "show",
			phony = True,
			callback = lambda sources: show(role))
		##################
		# init lifecycle #
		##################
		manifest_file_tgt = fckit.BuildTarget(
			path = role.meta_path,
			callback = lambda path, sources: write_manifest(path))
		###################
		# clean lifecycle #
		###################
		clean_phony_tgt = fckit.BuildTarget(
			path = "clean",
			phony = True,
			callback = lambda sources: clean(role))
		#####################
		# publish lifecycle #
		#####################
		readme_file_tgt = fckit.BuildTarget(
			path = role.readme_path,
			sources = (manifest_file_tgt,),
			callback = lambda path, sources: write_readme(role))
		maintask_file_tgt = fckit.BuildTarget(
			path = role.maintask_path,
			sources = (manifest_file_tgt,),
			callback = lambda path, sources: write_maintask(role))
		dist_phony_tgt = fckit.BuildTarget(
			path = "dist",
			phony = True,
			sources = (readme_file_tgt, maintask_file_tgt),
			callback = lambda sources: None)
		check_phony_tgt = fckit.BuildTarget(
			path = "check",
			phony = True,
			sources = (dist_phony_tgt,),
			callback = lambda sources: check(
				role = role,
				warning_flags = warning_flags))
		package_file_tgt = fckit.BuildTarget(
			path = role.package_path,
			callback = lambda path, sources: package(role))
		publish_phony_tgt = fckit.BuildTarget(
			path = "publish",
			phony = True,
			sources = (package_file_tgt,),
			callback = lambda sources: publish(sources[0], opts["--repository"]))
		switch = {
			"show": show_phony_tgt,
			"init": manifest_file_tgt,
			"dist": dist_phony_tgt,
			"clean": clean_phony_tgt,
			"check": check_phony_tgt,
			"package": package_file_tgt,
			"publish": publish_phony_tgt,
		}
		for target in opts["TARGETS"]:
			if target in switch:
				fckit.trace("at", target)
				switch[target].build()
			else:
				raise Error(target, "no such target")
	except fckit.Error as exc:
		raise SystemExit(fckit.red(exc))
Beispiel #6
0
# copyright (c) 2015 fclaerhout.fr, released under the MIT license.

import unittest, os

import universe, fckit # 3rd-party

fckit.enable_tracing()

class RoleTest(unittest.TestCase):

	def setUp(self):
		self.cwd = os.getcwd()
		self.tmpdir = fckit.mkdir()
		fckit.chdir(self.tmpdir)

	def tearDown(self):
		fckit.chdir(self.cwd)
		fckit.remove(self.tmpdir)

	def test(self):
		role = universe.Role()
		fckit.mkdir("meta")
		galaxy_info = {
			"author": "John Doe"
		}
		manifest = {
			"version": 42,
			"galaxy_info": galaxy_info,
		}
		universe.marshall(
			obj = manifest,