Esempio n. 1
0
def do_include_deps(args):
	"""include-deps"""
	buildenv = BuildEnv()

	depdir = os.path.realpath('dependencies')
	ensure_dir(depdir)

	dirs_to_copy = []

	sels = buildenv.get_selections()
	for needed_iface in sels.selections:
		impl = buildenv.chosen_impl(needed_iface)
		assert impl
		if impl.local_path is not None:
			raise SafeException("Can't export '%s' as it's a local implementation (not supported yet; sorry)" % impl)
		if not impl.id.startswith('package:'):
			dirs_to_copy.append(lookup(impl))
	
	copied = 0
	for cached in dirs_to_copy:
		required_digest = os.path.basename(cached)
		target_impl_dir = os.path.join(depdir, required_digest)
		if not os.path.isdir(target_impl_dir):
			if required_digest.startswith('sha1='):
				shutil.copytree(cached, target_impl_dir)
			else:
				with open(os.path.join(cached, '.manifest'), 'rb') as stream:
					manifest_data = stream.read()
				manifest.copy_tree_with_verify(cached, depdir, manifest_data, required_digest)
			copied += 1

	print("Copied %d dependencies to %s (%d already there)" % (copied, depdir, len(dirs_to_copy) - copied))
Esempio n. 2
0
def do_include_deps(args):
	"""include-deps"""
	buildenv = BuildEnv()

	depdir = os.path.realpath('dependencies')
	ensure_dir(depdir)

	dirs_to_copy = []

	sels = buildenv.get_selections()
	for needed_iface in sels.selections:
		impl = buildenv.chosen_impl(needed_iface)
		assert impl
		if impl.local_path is not None:
			raise SafeException("Can't export '%s' as it's a local implementation (not supported yet; sorry)" % impl)
		if not impl.id.startswith('package:'):
			dirs_to_copy.append(lookup(impl))
	
	copied = 0
	for cached in dirs_to_copy:
		required_digest = os.path.basename(cached)
		target_impl_dir = os.path.join(depdir, required_digest)
		if not os.path.isdir(target_impl_dir):
			if required_digest.startswith('sha1='):
				shutil.copytree(cached, target_impl_dir)
			else:
				manifest_data = file(os.path.join(cached, '.manifest')).read()
				manifest.copy_tree_with_verify(cached, depdir, manifest_data, required_digest)
			copied += 1

	print "Copied %d dependencies to %s (%d already there)" % (copied, depdir, len(dirs_to_copy) - copied)
Esempio n. 3
0
def do_copy(args):
	"""copy SOURCE [ TARGET ]"""
	if len(args) == 2:
		source, target = args
	elif len(args) == 1:
		source = args[0]
		target = stores.stores[0].dir
	else:
		raise UsageError(_("Wrong number of arguments."))

	if not os.path.isdir(source):
		raise UsageError(_("Source directory '%s' not found") % source)
	if not os.path.isdir(target):
		raise UsageError(_("Target directory '%s' not found") % target)
	manifest_path = os.path.join(source, '.manifest')
	if not os.path.isfile(manifest_path):
		raise UsageError(_("Source manifest '%s' not found") % manifest_path)
	required_digest = os.path.basename(source)
	manifest_data = file(manifest_path, 'rb').read()

	copy_tree_with_verify(source, target, manifest_data, required_digest)
Esempio n. 4
0
def do_copy(args):
    """copy SOURCE [ TARGET ]"""
    if len(args) == 2:
        source, target = args
    elif len(args) == 1:
        source = args[0]
        target = stores.stores[0].dir
    else:
        raise UsageError(_("Wrong number of arguments."))

    if not os.path.isdir(source):
        raise UsageError(_("Source directory '%s' not found") % source)
    if not os.path.isdir(target):
        raise UsageError(_("Target directory '%s' not found") % target)
    manifest_path = os.path.join(source, '.manifest')
    if not os.path.isfile(manifest_path):
        raise UsageError(_("Source manifest '%s' not found") % manifest_path)
    required_digest = os.path.basename(source)
    manifest_data = file(manifest_path, 'rb').read()

    copy_tree_with_verify(source, target, manifest_data, required_digest)