X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=yarrg%2Fconvert.c;h=adccb1cfdae6e52acf51fa6243600cc3fbaeb9f9;hb=f97853ce6dc9df1caedecd2dac9530d53fdb844d;hp=42467f2fe773fe44646d9e804acef067d429f8bc;hpb=9394bf058a6806354aa119f5c3ef99a1d6ac85f5;p=ypp-sc-tools.db-live.git diff --git a/yarrg/convert.c b/yarrg/convert.c index 42467f2..adccb1c 100644 --- a/yarrg/convert.c +++ b/yarrg/convert.c @@ -117,9 +117,9 @@ static void run_analysis(void) { } waitpid_check_exitstatus(processor, "output processor/uploader", 0); - fclose(tf); } + fclose(tf); progress_log("all complete."); } @@ -152,6 +152,32 @@ static void rsync_core(const char *stem, const char *suffix, 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 get_timestamp(void) { + FILE *tf; + pid_t child; + sysassert( tf= tmpfile() ); + + sysassert( (child= fork()) != -1 ); + if (!child) { + sysassert( dup2(fileno(tf),1)==1 ); + EXECLP_HELPER("database-info-fetch","timestamp",(char*)0); + } + waitpid_check_exitstatus(child,"timestamp request",0); + + sysassert( fseek(tf,0,SEEK_SET) == 0 ); + static char lbuf[30]; + int l= fread(lbuf,1,sizeof(lbuf),tf); + sysassert( !ferror(tf) ); + assert( feof(tf) ); + assert( l>1 ); + l--; + assert( lbuf[l]=='\n' ); + lbuf[l]= 0; + + sysassert(! setenv("YPPSC_DATA_TIMESTAMP",lbuf,1) ); + fclose(tf); +} + static void set_server(const char *envname, const char *defprotocol, const char *defvalue, const char *defvalue_test, const char *userspecified, @@ -310,8 +336,8 @@ int main(int argc, char **argv) { o_serv_pctb, o_flags & ff_use_pctb); set_server("YPPSC_YARRG_DICT_UPDATE", - "rsync://", "rsync.yarrg.chiark.net/pctb", - "rsync.yarrg.chiark.net/pctb/test", + "rsync://", "rsync.yarrg.chiark.net/yarrg", + "rsync.yarrg.chiark.net/yarrg/test", o_serv_dict_fetch, o_flags & ff_dict_fetch); set_server("YPPSC_YARRG_DICT_SUBMIT", @@ -323,6 +349,9 @@ int main(int argc, char **argv) { o_screenshot_fn= masprintf("%s/_pages.ppm.gz", get_vardir()); /* Actually do the work */ + + if ((o_flags & ff_upload) && (o_flags & ff_use_yarrg)) + get_timestamp(); canon_colour_prepare();