handle_ctrl_c()
o = options.Options(optspec)
-(opt, flags, remainder) = o.parse(['--paths', '--symlinks'] + sys.argv[1:])
+(opt, flags, remainder) = o.parse(['--paths', '--symlinks', '--recurse']
+ + sys.argv[1:])
opt.verbose = opt.verbose or 0
opt.quiet = opt.quiet or 0
if safe_path != path:
log('archiving "%s" as "%s"\n' % (path, safe_path))
- start_dir = os.getcwd()
- try:
- for (p, st) in recursive_dirlist(paths, xdev=xdev):
- dirlist_dir = os.getcwd()
- os.chdir(start_dir)
+ if not recurse:
+ for p in paths:
safe_path = _clean_up_path_for_archive(p)
+ st = xstat.lstat(p)
+ if stat.S_ISDIR(st.st_mode):
+ safe_path += '/'
m = from_path(p, statinfo=st, archive_path=safe_path,
save_symlinks=save_symlinks)
if verbose:
print >> sys.stderr, m.path
m.write(output_file, include_path=write_paths)
- os.chdir(dirlist_dir)
- finally:
- os.chdir(start_dir)
+ else:
+ start_dir = os.getcwd()
+ try:
+ for (p, st) in recursive_dirlist(paths, xdev=xdev):
+ dirlist_dir = os.getcwd()
+ os.chdir(start_dir)
+ safe_path = _clean_up_path_for_archive(p)
+ m = from_path(p, statinfo=st, archive_path=safe_path,
+ save_symlinks=save_symlinks)
+ if verbose:
+ print >> sys.stderr, m.path
+ m.write(output_file, include_path=write_paths)
+ os.chdir(dirlist_dir)
+ finally:
+ os.chdir(start_dir)
def _set_up_path(meta, create_symlinks=True):
| WVPASS bup meta -tvvf - | grep -qE '^group: bar'
)
+WVSTART 'meta --no-recurse'
+(
+ set +e
+ WVPASS force-delete "$TOP/bupmeta.tmp"
+ WVPASS mkdir "$TOP/bupmeta.tmp"
+ WVPASS cd "$TOP/bupmeta.tmp"
+ WVPASS mkdir src
+ WVPASS mkdir src/foo
+ WVPASS touch src/foo/{1,2,3}
+ WVPASS bup meta -cf src.meta src
+ WVPASSEQ "$(LC_ALL=C; bup meta -tf src.meta | sort)" "src/
+src/foo/
+src/foo/1
+src/foo/2
+src/foo/3"
+ WVPASS bup meta --no-recurse -cf src.meta src
+ WVPASSEQ "$(LC_ALL=C; bup meta -tf src.meta | sort)" "src/"
+) || exit $?
+
# Test ownership restoration (when not root or fakeroot).
(
if [ $(t/root-status) != none ]; then