X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-live.git;a=blobdiff_plain;f=yarrg%2Fconvert.c;h=555eefe0274c4300ecbdcab8da5b91c9e6c2c508;hp=42467f2fe773fe44646d9e804acef067d429f8bc;hb=59bee7afb77216585b904bd20f17e71005e9778c;hpb=9394bf058a6806354aa119f5c3ef99a1d6ac85f5 diff --git a/yarrg/convert.c b/yarrg/convert.c index 42467f2..555eefe 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, @@ -236,6 +262,7 @@ int main(int argc, char **argv) { else if (IS("--dict-read-only")) o_flags &= (~ffs_dict | ff_dict_fetch); else if (IS("--dict-anon")) o_flags &= ~ff_dict_pirate; else if (IS("--dict-submit")) o_flags |= ff_dict_fetch|ff_dict_submit; + else if (IS("--dict-no-update")) o_flags &= ~ff_dict_fetch; // testing else if (IS("--raw-tsv")) outputmode(omk_raw,0); else if (IS("--upload")) outputmode_uploads(); else if (IS("--upload-yarrg")) outputmode(omk_upload_yarrg,arg+2); @@ -310,8 +337,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 +350,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();