X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-syncfs.c;h=d21f34f3551bc97558a6afe6a40e660f60349e23;hb=0b4c476faa9f0e5ce8d5c7363daa5e81d452814a;hp=7422ece7a505cb59cff5afddc0ca154057d86880;hpb=078e743a920430f7975b3fecfd23f8070a0844a2;p=zpackage diff --git a/zpm-syncfs.c b/zpm-syncfs.c index 7422ece..d21f34f 100644 --- a/zpm-syncfs.c +++ b/zpm-syncfs.c @@ -607,7 +607,9 @@ static int set_md(struct config *conf, struct nitem *item) { int success = 0; if (conf->dryrun) { - printf("chmod %o %s\n", item->mode, item->dest); + if (item->ftype != 'l') { + printf("chmod %o %s\n", item->mode, item->dest); + } if (conf->setuser && conf->setgroup) { printf("chown %d:%d %s\n", item->uid, item->gid, item->dest); @@ -617,11 +619,14 @@ static int set_md(struct config *conf, struct nitem *item) { return success; } - rv = chmod(item->dest, item->mode); + /* can't chmod a symlink */ + if (item->ftype != 'l') { + rv = chmod(item->dest, item->mode); - if (rv == -1) { - setsyserr(conf, "can't chmod %o %s", item->mode, item->dest); - return conf->errabort; + if (rv == -1) { + setsyserr(conf, "can't chmod %o %s", item->mode, item->dest); + return conf->errabort; + } } if (conf->setuser && conf->setgroup) { @@ -676,9 +681,13 @@ static int install(struct config *conf, struct nitem *item, unsigned int flags) printf("rmdir %s\n", item->dest); } - printf("install %c%o %d:%d %s\n", item->ftype, + printf("install %c%o %d:%d %s", item->ftype, item->mode, item->uid, item->gid, item->dest); + if (item->ftype == 'l') { + printf(" -> %s", item->target); + } + printf("\n"); fflush(stdout); return success; }