diff options
| author | David Härdeman <david@hardeman.nu> | 2007-05-19 12:25:05 +0200 | 
|---|---|---|
| committer | David Härdeman <david@hardeman.nu> | 2007-05-19 12:25:05 +0200 | 
| commit | 22fd68b59d5f792ff033120ad260581ac7fa72ee (patch) | |
| tree | da8efee0169c33d8ae532fd31e5a83862688fc52 /metastore.c | |
| parent | 3cb9d64b9b2ace1463f274c8554bffbfa4979e0d (diff) | |
Change all printf() calls to msg() calls and clean up output
Diffstat (limited to 'metastore.c')
| -rw-r--r-- | metastore.c | 139 | 
1 files changed, 75 insertions, 64 deletions
| diff --git a/metastore.c b/metastore.c index ec28c38..7a2ac7a 100644 --- a/metastore.c +++ b/metastore.c @@ -1,4 +1,3 @@ -#include <stdio.h>  #include <sys/types.h>  #include <sys/stat.h>  #include <pwd.h> @@ -20,34 +19,34 @@ static void  compare_print(struct metaentry *left, struct metaentry *right, int cmp)  {  	if (!left) { -		printf("Path %s: removed\n", right->path); +		msg(MSG_QUIET, "%s:\tremoved\n", right->path);  		return;  	}  	if (!right) { -		printf("Path %s: added\n", left->path); +		msg(MSG_QUIET, "%s:\tadded\n", left->path);  		return;  	}  	if (cmp == DIFF_NONE) { -		msg(MSG_DEBUG, "Path %s: no difference\n", left->path); +		msg(MSG_DEBUG, "%s:\tno difference\n", left->path);  		return;  	} -	printf("Path %s: ", left->path); +	msg(MSG_QUIET, "%s:\t", left->path);  	if (cmp & DIFF_OWNER) -		printf("owner "); +		msg(MSG_QUIET, "owner ");  	if (cmp & DIFF_GROUP) -		printf("group "); +		msg(MSG_QUIET, "group ");  	if (cmp & DIFF_MODE) -		printf("mode "); +		msg(MSG_QUIET, "mode ");  	if (cmp & DIFF_TYPE) -		printf("type "); +		msg(MSG_QUIET, "type ");  	if (cmp & DIFF_MTIME) -		printf("mtime "); +		msg(MSG_QUIET, "mtime ");  	if (cmp & DIFF_XATTR) -		printf("xattr "); -	printf("\n"); +		msg(MSG_QUIET, "xattr "); +	msg(MSG_QUIET, "\n");  }  static void @@ -61,73 +60,73 @@ compare_fix(struct metaentry *left, struct metaentry *right, int cmp)  	int i;  	if (!left && !right) { -		printf("%s called with incorrect arguments\n", __FUNCTION__); +		msg(MSG_ERROR, "%s called with incorrect arguments\n", __FUNCTION__);  		return;  	}  	if (!left) { -		printf("Path %s: removed\n", right->path); +		msg(MSG_NORMAL, "%s:\tremoved\n", right->path);  		return;  	}  	if (!right) { -		printf("Path %s: added\n", left->path); +		msg(MSG_NORMAL, "%s:\tadded\n", left->path);  		return;  	}  	if (cmp == DIFF_NONE) { -		msg(MSG_DEBUG, "Path %s: no difference\n", left->path); +		msg(MSG_DEBUG, "%s:\tno difference\n", left->path);  		return;  	}  	if (cmp & DIFF_TYPE) { -		printf("Path %s: new type, will not change metadata\n", left->path); +		msg(MSG_NORMAL, "%s:\tnew type, will not change metadata\n", left->path);  		return;  	} -	if (cmp & (DIFF_OWNER | DIFF_GROUP)) { +	msg(MSG_QUIET, "%s:\tchanging metadata\n", left->path); + +	while (cmp & (DIFF_OWNER | DIFF_GROUP)) {  		if (cmp & DIFF_OWNER) { -			printf("Path %s: fixing owner from %s to %s\n", left->path, left->group, right->group); +			msg(MSG_NORMAL, "\tchanging owner from %s to %s\n", left->path, left->group, right->group);  			owner = getpwnam(right->owner);  			if (!owner) { -				perror("getpwnam"); -				return; +				msg(MSG_DEBUG, "\tgetpwnam failed: %s\n", strerror(errno)); +				break;  			}  			uid = owner->pw_uid;  		}  		if (cmp & DIFF_GROUP) { -			printf("Path %s: fixing group from %s to %s\n", left->path, left->group, right->group); +			msg(MSG_NORMAL, "\tchanging group from %s to %s\n", left->path, left->group, right->group);  			group = getgrnam(right->group);  			if (!group) { -				perror("getgrnam"); -				return; +				msg(MSG_DEBUG, "\tgetgrnam failed: %s\n", strerror(errno)); +				break;  			}  			gid = group->gr_gid;  		}  		if (lchown(left->path, uid, gid)) { -			perror("lchown"); -			return; +			msg(MSG_DEBUG, "\tlchown failed: %s\n", strerror(errno)); +			break;  		} -		printf("Success\n"); +		break;  	}  	if (cmp & DIFF_MODE) { -		printf("Path %s: fixing mode from 0%o to 0%o\n", left->path, left->mode, right->mode); -		if (chmod(left->path, left->mode)) { -			perror("chmod"); -			return; -		} +		msg(MSG_NORMAL, "%s:\tchanging mode from 0%o to 0%o\n", left->path, left->mode, right->mode); +		if (chmod(left->path, left->mode)) +			msg(MSG_DEBUG, "\tchmod failed: %s\n", strerror(errno));  	}  	if (cmp & DIFF_MTIME) { -		printf("Path %s: fixing mtime %ld to %ld\n", left->path, left->mtime, right->mtime); +		msg(MSG_NORMAL, "%s:\tchanging mtime from %ld to %ld\n", left->path, left->mtime, right->mtime);  		/* FIXME: Use utimensat here */  		tbuf.actime = right->mtime;  		tbuf.modtime = right->mtime;  		if (utime(left->path, &tbuf)) { -			perror("utime"); +			msg(MSG_DEBUG, "\tutime failed: %s\n", strerror(errno));  			return;  		}  	} @@ -138,10 +137,10 @@ compare_fix(struct metaentry *left, struct metaentry *right, int cmp)  			if (mentry_find_xattr(right, left, i) >= 0)  				continue; -			msg(MSG_NORMAL, "Path %s: removing xattr %s\n", +			msg(MSG_NORMAL, "%s:\tremoving xattr %s\n",  			    left->path, left->xattr_names[i]);  			if (lremovexattr(left->path, left->xattr_names[i])) -				perror("lremovexattr"); +				msg(MSG_DEBUG, "\tlremovexattr failed: %s\n", strerror(errno));  		}  		for (i = 0; i < right->xattrs; i++) { @@ -149,31 +148,31 @@ compare_fix(struct metaentry *left, struct metaentry *right, int cmp)  			if (mentry_find_xattr(left, right, i) >= 0)  				continue; -			msg(MSG_NORMAL, "Path %s: adding xattr %s\n", +			msg(MSG_NORMAL, "%s:\tadding xattr %s\n",  			    right->path, right->xattr_names[i]);  			if (lsetxattr(right->path, right->xattr_names[i],  -				       right->xattr_values[i], right->xattr_lvalues[i], XATTR_CREATE)) -				perror("lsetxattr"); +				      right->xattr_values[i], right->xattr_lvalues[i], XATTR_CREATE)) +				msg(MSG_DEBUG, "\tlsetxattr failed: %s\n", strerror(errno));  		}  	}  }  static void -usage(const char *arg0, const char *msg) +usage(const char *arg0, const char *message)  { -	if (msg) -		fprintf(stderr, "%s: %s\n\n", arg0, msg); -	fprintf(stderr, "Usage: %s ACTION [OPTIONS] [PATH]...\n\n", arg0); -	fprintf(stderr, "Where ACTION is one of:\n" -			"  -d, --diff\tShow differences between stored and actual metadata\n" -			"  -s, --save\tSave current metadata\n" -			"  -a, --apply\tApply stored metadata\n" -			"  -h, --help\tHelp message (this text)\n\n" -			"Valid OPTIONS are (can be given more than once):\n" -			"  -v, --verbose\tPrint more verbose messages\n" -			"  -q, --quiet\tPrint less verbose messages\n"); - -	exit(msg ? EXIT_FAILURE : EXIT_SUCCESS); +	if (message) +		msg(MSG_CRITICAL, "%s: %s\n\n", arg0, msg); +	msg(MSG_CRITICAL, "Usage: %s ACTION [OPTIONS] [PATH]...\n\n", arg0); +	msg(MSG_CRITICAL, "Where ACTION is one of:\n" +	    "  -d, --diff\tShow differences between stored and actual metadata\n" +	    "  -s, --save\tSave current metadata\n" +	    "  -a, --apply\tApply stored metadata\n" +	    "  -h, --help\tHelp message (this text)\n\n" +	    "Valid OPTIONS are (can be given more than once):\n" +	    "  -v, --verbose\tPrint more verbose messages\n" +	    "  -q, --quiet\tPrint less verbose messages\n"); + +	exit(message ? EXIT_FAILURE : EXIT_SUCCESS);  }  static struct option long_options[] = { @@ -251,51 +250,63 @@ main(int argc, char **argv, char **envp)  	case ACTION_DIFF:  		mentries_fromfile(&mfhead, METAFILE);  		if (!mfhead) { -			fprintf(stderr, "Failed to load metadata from file\n"); +			msg(MSG_CRITICAL, "Failed to load metadata from file\n");  			exit(EXIT_FAILURE);  		} -		if (optind < argc) +		if (optind < argc) {  			while (optind < argc)  				mentries_recurse_path(argv[optind++], &mhead); -		else +		} else {  			mentries_recurse_path(".", &mhead); +		} +  		if (!mhead) { -			fprintf(stderr, "Failed to load metadata from fs\n"); +			msg(MSG_CRITICAL, "Failed to load metadata from file system\n");  			exit(EXIT_FAILURE);  		} +  		mentries_compare(mhead, mfhead, compare_print);  		break; +  	case ACTION_SAVE: -		if (optind < argc) +		if (optind < argc) {  			while (optind < argc)  				mentries_recurse_path(argv[optind++], &mhead); -		else +		} else {  			mentries_recurse_path(".", &mhead); +		} +  		if (!mhead) { -			fprintf(stderr, "Failed to load metadata from fs\n"); +			msg(MSG_CRITICAL, "Failed to load metadata from file system\n");  			exit(EXIT_FAILURE);  		} +  		mentries_tofile(mhead, METAFILE);  		break; +  	case ACTION_APPLY:  		mentries_fromfile(&mfhead, METAFILE);  		if (!mfhead) { -			fprintf(stderr, "Failed to load metadata from file\n"); +			msg(MSG_CRITICAL, "Failed to load metadata from file\n");  			exit(EXIT_FAILURE);  		} -		if (optind < argc) +		if (optind < argc) {  			while (optind < argc)  				mentries_recurse_path(argv[optind++], &mhead); -		else +		} else {  			mentries_recurse_path(".", &mhead); +		} +  		if (!mhead) { -			fprintf(stderr, "Failed to load metadata from fs\n"); +			msg(MSG_CRITICAL, "Failed to load metadata from file system\n");  			exit(EXIT_FAILURE);  		} +  		mentries_compare(mhead, mfhead, compare_fix);  		break; +  	case ACTION_HELP:  		usage(argv[0], NULL);  	} | 
