diff --git a/client/cli/bam.py b/client/cli/bam.py index 5c678fa..2ba36ab 100755 --- a/client/cli/bam.py +++ b/client/cli/bam.py @@ -330,17 +330,25 @@ class bam_utils: if file_type != "dir": print(" %s" % name_short) + @staticmethod + def deps(paths, recursive=False): + import blendfile_path_walker + import os + # TODO(cam) multiple paths + for blendfile_src in paths: + blendfile_src = blendfile_src.encode('utf-8') + for fp, (rootdir, fp_blend_basename) in blendfile_path_walker.FilePath.visit_from_blend( + blendfile_src, + readonly=True, + recursive=recursive, + ): + print(" %r -> %r" % (os.path.join(fp.basedir, fp_blend_basename), fp.filepath)) + + def subcommand_init_cb(args): bam_utils.init(args.url, args.directory_name) - @staticmethod - def deps(paths): - # TODO(cam) multiple paths - path = paths[0] - - - def subcommand_checkout_cb(args): bam_utils.checkout(args.paths) diff --git a/modules/blendfile_path_walker.py b/modules/blendfile_path_walker.py index e385b90..8e23836 100644 --- a/modules/blendfile_path_walker.py +++ b/modules/blendfile_path_walker.py @@ -177,6 +177,9 @@ class FilePath: if rootdir is None: rootdir = basedir + if lib_visit is None: + lib_visit = {} + if recursive and (level > 0) and (block_codes is not None): # prevent from expanding the # same datablock more then once @@ -340,6 +343,12 @@ class FilePath: # print("looking for", lib_block_codes) + if not os.path.exists(lib_path_abs): + if VERBOSE: + print((indent_str + " "), "Library Missing: ", filepath, " -> ", lib_path_abs, sep="") + continue + + # import IPython; IPython.embed() if VERBOSE: print((indent_str + " "), "Library: ", filepath, " -> ", lib_path_abs, sep="")