}
assert(*dst_fstat!=0);
+
- {
- PathInfo src_path = mlist->root;
- char src_path_buf[ENSC_PI_APPSZ(src_path, *path)];
+ PathInfo src_path = mlist->root;
+ char src_path_buf[ENSC_PI_APPSZ(src_path, *path)];
- PathInfo_append(&src_path, path, src_path_buf);
+ PathInfo_append(&src_path, path, src_path_buf);
// source file does not exist
- skip_reason.r = rsNOEXISTS;
- if (lstat(src_path.d, src_fstat)==-1) return false;
+ skip_reason.r = rsNOEXISTS;
+ if (lstat(src_path.d, src_fstat)==-1) return false;
// these are directories; this succeeds everytime
- if (S_ISDIR((*dst_fstat)->st_mode) && S_ISDIR(src_fstat->st_mode)) return true;
+ if (S_ISDIR((*dst_fstat)->st_mode) && S_ISDIR(src_fstat->st_mode)) return true;
// both files are different, so return false
- skip_reason.r = rsDIFFERENT;
- if ((!global_args->do_revert && !Unify_isUnifyable(*dst_fstat, src_fstat)) ||
- ( global_args->do_revert && !Unify_isUnified (*dst_fstat, src_fstat)))
- return false;
- }
+ skip_reason.r = rsDIFFERENT;
+ if ((!global_args->do_revert && !Unify_isUnifyable(*dst_fstat, src_fstat)) ||
+ ( global_args->do_revert && !Unify_isUnified (*dst_fstat, src_fstat)))
+ return false;
// these are the same files
return true;
// abort when it is not matching an allowed entry
skip_reason.r = rsEXCL_DST;
skip_reason.d.list = &info->dst_list;
- if (!MatchList_compare(&info->dst_list, path->d)) return 0;
+ if (MatchList_compare(&info->dst_list, path->d)!=stINCLUDE) return 0;
// Now, go through the reference vservers and do the lightweigt list-check
// first and compare then the fstat's.
cache_stat = 0;
skip_reason.r = rsEXCL_SRC;
skip_reason.d.list = mlist;
- if (MatchList_compare(mlist, path->d) &&
+ if (MatchList_compare(mlist, path->d)==stINCLUDE &&
checkFstat(mlist, d_path, path, &cache_stat, dst_stat, src_stat)) {
// Failed the check or is it a symlink which can not be handled
PathInfo path = mlist->root;
char path_buf[ENSC_PI_APPSZ(path, *src_path)];
- if (global_args->do_dry_run || global_args->verbosity>0) {
+ if (global_args->do_dry_run || Global_getVerbosity()>=2) {
if (global_args->do_revert) WRITE_MSG(1, "deunifying '");
else WRITE_MSG(1, "unifying '");
- write(1, src_path->d, src_path->l);
+ Vwrite(1, src_path->d, src_path->l);
WRITE_MSG(1, "'");
- if (global_args->verbosity>2) {
+ if (Global_getVerbosity()>=4) {
WRITE_MSG(1, " (from ");
- if (global_args->verbosity==2 && mlist->id.d)
- write(1, mlist->id.d, mlist->id.l);
+ if (Global_getVerbosity()==4 && mlist->id.d)
+ Vwrite(1, mlist->id.d, mlist->id.l);
else
- write(1, mlist->root.d, mlist->root.l);
+ Vwrite(1, mlist->root.d, mlist->root.l);
WRITE_MSG(1, ")");
}
WRITE_MSG(1, "\n");
PathInfo_append(&path, src_path, path_buf);
return (global_args->do_dry_run ||
- (!global_args->do_revert && Unify_unify (path.d, src_stat, dst_path)) ||
+ (!global_args->do_revert && Unify_unify (path.d, src_stat, dst_path, false)) ||
( global_args->do_revert && Unify_deUnify(dst_path)));
}
MatchList_printId(skip_reason.d.list, 1);
break;
case rsFSTAT : WRITE_MSG(1, "fstat error"); break;
- case rsNOEXISTS : WRITE_MSG(1, "does not exists in refserver(s)"); break;
+ case rsNOEXISTS : WRITE_MSG(1, "does not exist in refserver(s)"); break;
case rsSYMLINK : WRITE_MSG(1, "symlink"); break;
case rsSPECIAL : WRITE_MSG(1, "non regular file"); break;
case rsUNIFIED : WRITE_MSG(1, "already unified"); break;
(match=checkDirEntry(&path, &d_path, &is_dir, &src_stat, &f_stat))==0) {
bool is_link = is_dotfile ? false : S_ISLNK(f_stat.st_mode);
- if (global_args->verbosity>1 &&
+ if (Global_getVerbosity()>=1 &&
+ (Global_getVerbosity()>=3 || skip_reason.r!=rsUNIFIED) &&
((!is_dotfile && !is_link) ||
- (global_args->verbosity>4 && is_dotfile) ||
- (global_args->verbosity>4 && is_link)) ) {
+ (Global_getVerbosity()>=6 && is_dotfile) ||
+ (Global_getVerbosity()>=6 && is_link)) ) {
WRITE_MSG(1, " skipping '");
- write(1, path.d, path.l);
+ Vwrite(1, path.d, path.l);
WRITE_MSG(1, "'");
- if (global_args->verbosity>2) printSkipReason();
+ if (Global_getVerbosity()>=2) printSkipReason();
WRITE_MSG(1, "\n");
}
return 0;
global_info.state.l = 0;
- if (global_args->verbosity>3) WRITE_MSG(1, "Starting to traverse directories...\n");
+ if (Global_getVerbosity()>=1) WRITE_MSG(1, "Starting to traverse directories...\n");
Echdir(global_info.dst_list.root.d);
visitDir("/", 0);