chiark
/
gitweb
/
~yarrgweb
/
ypp-sc-tools.web-live.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use compressed _master-pixmap.txt.gz
[ypp-sc-tools.web-live.git]
/
pctb
/
convert.c
diff --git
a/pctb/convert.c
b/pctb/convert.c
index 8386c1609a0f68f85a0936a0df953b26c120f2c2..6bc9b2c8897d28ce7f88793a0d424ef131d3e76c 100644
(file)
--- a/
pctb/convert.c
+++ b/
pctb/convert.c
@@
-110,12
+110,13
@@
static void run_analysis(void) {
EXECLP_HELPER("commod-results-processor", o_outmode_str, (char*)0);
}
EXECLP_HELPER("commod-results-processor", o_outmode_str, (char*)0);
}
- waitpid_check_exitstatus(processor, "output processor/uploader");
+ waitpid_check_exitstatus(processor, "output processor/uploader"
, 0
);
fclose(tf);
progress_log("all complete.");
}
fclose(tf);
progress_log("all complete.");
}
-void fetch_with_rsync(const char *stem) {
+static void rsync_core(const char *stem, const char *suffix,
+ const char *zopt) {
pid_t fetcher;
sysassert( (fetcher= fork()) != -1 );
pid_t fetcher;
sysassert( (fetcher= fork()) != -1 );
@@
-124,19
+125,23
@@
void fetch_with_rsync(const char *stem) {
if (!rsync) rsync= "rsync";
const char *src= getenv("YPPSC_PCTB_DICT_UPDATE");
if (!rsync) rsync= "rsync";
const char *src= getenv("YPPSC_PCTB_DICT_UPDATE");
- char *remote= masprintf("%s/master-%s.txt
", src, stem
);
- char *local= masprintf("_master-%s.txt
", stem
);
+ char *remote= masprintf("%s/master-%s.txt
%s", src, stem, suffix
);
+ char *local= masprintf("_master-%s.txt
%s", stem, suffix
);
if (DEBUGP(rsync))
fprintf(stderr,"executing rsync to fetch %s to %s\n",remote,local);
if (DEBUGP(rsync))
fprintf(stderr,"executing rsync to fetch %s to %s\n",remote,local);
- execlp(rsync, "rsync",
- DEBUGP(rsync) ? "-zvLt" : "-zLt",
- "--",remote,local,(char*)0);
+ char *opts= masprintf("-Lt%s%s",
+ zopt,
+ DEBUGP(rsync) ? "v" : "");
+ execlp(rsync, "rsync",opts,"--",remote,local,(char*)0);
sysassert(!"exec rsync failed");
}
sysassert(!"exec rsync failed");
}
- waitpid_check_exitstatus(fetcher, "rsync");
+ waitpid_check_exitstatus(fetcher, "rsync"
, 0
);
}
}
+void fetch_with_rsync_gz(const char *stem) { rsync_core(stem,".gz",""); }
+void fetch_with_rsync(const char *stem) { rsync_core(stem,"","z"); }
+
static void set_server(const char *envname, const char *defprotocol,
const char *defvalue, const char *defvalue_test,
const char *userspecified,
static void set_server(const char *envname, const char *defprotocol,
const char *defvalue, const char *defvalue_test,
const char *userspecified,
@@
-411,7
+416,7
@@
void sysassert_fail(const char *file, int line, const char *what) {
_exit(16);
}
_exit(16);
}
-void waitpid_check_exitstatus(pid_t pid, const char *what) {
+void waitpid_check_exitstatus(pid_t pid, const char *what
, int sigpipeok
) {
pid_t got;
int st;
for (;;) {
pid_t got;
int st;
for (;;) {
@@
-426,8
+431,9
@@
void waitpid_check_exitstatus(pid_t pid, const char *what) {
fatal("%s failed with nonzero exit status %d",
what, WEXITSTATUS(st));
} else if (WIFSIGNALED(st)) {
fatal("%s failed with nonzero exit status %d",
what, WEXITSTATUS(st));
} else if (WIFSIGNALED(st)) {
- fatal("%s died due to signal %s%s", what,
- strsignal(WTERMSIG(st)), WCOREDUMP(st)?" (core dumped)":"");
+ if (!sigpipeok || WTERMSIG(st) != SIGPIPE)
+ fatal("%s died due to signal %s%s", what,
+ strsignal(WTERMSIG(st)), WCOREDUMP(st)?" (core dumped)":"");
} else {
fatal("%s gave strange wait status %d", what, st);
}
} else {
fatal("%s gave strange wait status %d", what, st);
}