Changeset 1425 for trunk


Ignore:
Timestamp:
2000-08-18T17:40:07+12:00 (24 years ago)
Author:
sjboddie
Message:

* empty log message *

Location:
trunk/gsdl
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/etc/main.cfg

    r1390 r1425  
    66                gsdl.dm english.dm chinese.dm french.dm german.dm maori.dm \
    77                english2.dm french2.dm arabic.dm spanish.dm \
    8                 home.dm
     8                home.dm collect.dm
    99
    1010status          enabled
  • trunk/gsdl/macros/collect.dm

    r1419 r1425  
    99# this is just like the _gsimage_ macro but it calls the check_submit() javascript
    1010# function instead of linking directly to the page (_1_ argument isn't used)
    11 _gsjimage_ {<a href="javascript:check_submit('_4_');" onMouseover="roll('_4_',1);" onMouseOut="roll('_4_',0);"><img
     11_gsjimage_ {<a href="javascript:check\_submit('_4_');" onMouseover="roll('_4_',1);" onMouseOut="roll('_4_',0);"><img
    1212name="_4_" src="_2_" onLoad="gbutton(this,'_3_');" border=0 alt="_5_"></a>}
    1313
    14 _gsimage_ [v=1] {<a href="#" onClick="check_submit(_4_);">_5_</a><br>}
     14_gsimage_ [v=1] {<a href="#" onClick="check\_submit(_4_);">_5_</a><br>}
    1515
    1616
     
    106106<form name="collectorform" method=post action="_gwcgi_">
    107107<input type=hidden name="e" value="_decodedcompressedoptions_">
    108 <input type=hidden name="pcp" value="_cgiargcp_">
    109108
    110109<center>
     
    226225
    227226_infoscriptextra_ {
    228 function check_submit (gotopage) \{
     227function check\_submit (gotopage) \{
    229228  var form = document.collectorform;
    230229  if (form.bc1fullname.value.match(/^\\s*$/))
     
    261260<input type=hidden name="e" value="_decodedcompressedoptions_">
    262261<input type=hidden name="cp" value="_cgiargcp_">
    263 <input type=hidden name="pcp" value="_cgiargcp_">
     262<input type=hidden name="bc1infochanged" value="0">
    264263
    265264<center>
     
    278277
    279278<h4>Title for collection:</h4>
    280 <input type="text" name="bc1fullname" value="_cgiargbc1fullname_") size=72>
     279<input type="text" name="bc1fullname" value="_cgiargbc1fullname_"
     280onChange="document.collectorform.bc1infochanged.value=1;") size=72>
    281281<br>
    282282<font color="#909090">
     
    288288
    289289<h4>Contact email address:</h4>
    290 <input type="text" name="bc1contactemail" value="_cgiargbc1contactemail_" size=72>
     290<input type="text" name="bc1contactemail" value="_cgiargbc1contactemail_"
     291onChange="document.collectorform.bc1infochanged.value=1;" size=72>
    291292<br>
    292293<font color="#909090">
     
    298299
    299300<h4>About this collection:</h4>
    300 <textarea name="bc1aboutdesc"  cols=72 rows=6
    301      wrap=physical>_cgiargbc1aboutdesc_</textarea>
     301<textarea name="bc1aboutdesc"  cols=72 rows=6 wrap=physical
     302onChange="document.collectorform.bc1infochanged.value=1;">
     303_cgiargbc1aboutdesc_
     304</textarea>
    302305<br>
    303306<font color="#909090">
     
    331334
    332335_srcescriptextra_ {
    333 function check_submit (gotopage) \{
     336function check\_submit (gotopage) \{
    334337  var form = document.collectorform;
    335338
     
    353356<input type=hidden name="e" value="_decodedcompressedoptions_">
    354357<input type=hidden name="cp" value="_cgiargcp_">
    355 <input type=hidden name="pcp" value="_cgiargcp_">
    356358
    357359<center>
     
    433435var changed = 0;
    434436
    435 function check_submit (gotopage) \{
     437function check\_submit (gotopage) \{
    436438  var form = document.collectorform;
    437439  form.bc1cfgchanged.value = changed;
     
    440442\}
    441443
    442 function reset_button () \{
     444function reset\_button () \{
    443445  document.collectorform.reset();
    444446  changed = 0;
     
    450452<input type=hidden name="e" value="_decodedcompressedoptions_">
    451453<input type=hidden name="cp" value="_cgiargcp_">
    452 <input type=hidden name="pcp" value="_cgiargcp_">
    453454<input type=hidden name="bc1cfgchanged" value="_cgiargbc1cfgchanged_">
    454455
     
    477478</textarea>
    478479<table><tr valign=top>
    479 <td><a href="javascript:reset_button();">_iconstop_</a></td>
    480 <td><a href="javascript:reset_button();">Reset</a></td>
     480<td><a href="javascript:reset\_button();">_iconstop_</a></td>
     481<td><a href="javascript:reset\_button();">Reset</a></td>
    481482</tr></table>
     483
     484<p><center>
     485_collectorbar_
     486</center>
     487
     488</td></tr>
     489</table></center>
     490
     491</form>
     492}
     493
     494
     495#######################################################################
     496# Build page
     497
     498_bildscriptextra_ {
     499var changed = 0;
     500
     501function check\_submit (gotopage) \{
     502  var form = document.collectorform;
     503  form.bc1cfgchanged.value = changed;
     504  form.cp.value = gotopage;
     505  form.submit();
     506\}
     507}
     508
     509_bildcontent_ {
     510<form name="collectorform" method=post action="_gwcgi_">
     511<input type=hidden name="e" value="_decodedcompressedoptions_">
     512<input type=hidden name="cp" value="_cgiargcp_">
     513
     514<center>
     515<table width=_pagewidth_>
     516<tr><td>
     517_iconblankbar_
     518<center>
     519<h2>Build</h2>
     520</center>
     521<p>_iconblankbar_
    482522
    483523<p><center>
  • trunk/gsdl/src/recpt/collectoraction.cpp

    r1419 r1425  
    2424 *********************************************************************/
    2525
     26// note that the collectoraction relies on having direct access to a
     27// collections configuration file. this breaks the separation between
     28// receptionist and collection server and so is not suitable (at least
     29// in its current form) for use when collection servers are separate
     30// from the receptionist (e.g. when using the CORBA protocol).
     31
    2632#include "collectoraction.h"
    2733#include "OIDtools.h"
    2834#include "fileutil.h"
     35#include "cfgread.h"
    2936
    3037#if !defined (__WIN32__)
     
    5562  argsinfo.addarginfo (NULL, arg_ainfo);
    5663
    57   arg_ainfo.shortname = "pcp";
    58   arg_ainfo.longname = "previous collector page";
    59   arg_ainfo.multiplechar = true;
    60   arg_ainfo.defaultstatus = cgiarginfo::weak;
    61   arg_ainfo.argdefault = "";
     64  arg_ainfo.shortname = "bc1fullname";
     65  arg_ainfo.longname = "collector specific";
     66  arg_ainfo.multiplechar = true;
     67  arg_ainfo.defaultstatus = cgiarginfo::weak;
     68  arg_ainfo.argdefault = "";
     69  arg_ainfo.savedarginfo = cgiarginfo::must;
     70  argsinfo.addarginfo (NULL, arg_ainfo);
     71
     72  arg_ainfo.shortname = "bc1dirname";
     73  arg_ainfo.longname = "collector specific";
     74  arg_ainfo.multiplechar = true;
     75  arg_ainfo.defaultstatus = cgiarginfo::weak;
     76  arg_ainfo.argdefault = "";
     77  arg_ainfo.savedarginfo = cgiarginfo::must;
     78  argsinfo.addarginfo (NULL, arg_ainfo);
     79
     80  arg_ainfo.shortname = "bc1contactemail";
     81  arg_ainfo.longname = "collector specific";
     82  arg_ainfo.multiplechar = true;
     83  arg_ainfo.defaultstatus = cgiarginfo::weak;
     84  arg_ainfo.argdefault = "";
     85  arg_ainfo.savedarginfo = cgiarginfo::must;
     86  argsinfo.addarginfo (NULL, arg_ainfo);
     87
     88  arg_ainfo.shortname = "bc1aboutdesc";
     89  arg_ainfo.longname = "collector specific";
     90  arg_ainfo.multiplechar = true;
     91  arg_ainfo.defaultstatus = cgiarginfo::weak;
     92  arg_ainfo.argdefault = "";
     93  arg_ainfo.savedarginfo = cgiarginfo::must;
     94  argsinfo.addarginfo (NULL, arg_ainfo);
     95
     96  arg_ainfo.shortname = "bc1clone";
     97  arg_ainfo.longname = "collector specific";
     98  arg_ainfo.multiplechar = false;
     99  arg_ainfo.defaultstatus = cgiarginfo::weak;
     100  arg_ainfo.argdefault = "0";
     101  arg_ainfo.savedarginfo = cgiarginfo::must;
     102  argsinfo.addarginfo (NULL, arg_ainfo);
     103
     104  arg_ainfo.shortname = "bc1clonecol";
     105  arg_ainfo.longname = "collector specific";
     106  arg_ainfo.multiplechar = true;
     107  arg_ainfo.defaultstatus = cgiarginfo::weak;
     108  arg_ainfo.argdefault = "";
     109  arg_ainfo.savedarginfo = cgiarginfo::must;
     110  argsinfo.addarginfo (NULL, arg_ainfo);
     111
     112  arg_ainfo.shortname = "bc1inputdir1";
     113  arg_ainfo.longname = "collector specific";
     114  arg_ainfo.multiplechar = true;
     115  arg_ainfo.defaultstatus = cgiarginfo::weak;
     116  arg_ainfo.argdefault = "";
     117  arg_ainfo.savedarginfo = cgiarginfo::must;
     118  argsinfo.addarginfo (NULL, arg_ainfo);
     119
     120  arg_ainfo.shortname = "bc1inputdir2";
     121  arg_ainfo.longname = "collector specific";
     122  arg_ainfo.multiplechar = true;
     123  arg_ainfo.defaultstatus = cgiarginfo::weak;
     124  arg_ainfo.argdefault = "";
     125  arg_ainfo.savedarginfo = cgiarginfo::must;
     126  argsinfo.addarginfo (NULL, arg_ainfo);
     127
     128  arg_ainfo.shortname = "bc1inputdir3";
     129  arg_ainfo.longname = "collector specific";
     130  arg_ainfo.multiplechar = true;
     131  arg_ainfo.defaultstatus = cgiarginfo::weak;
     132  arg_ainfo.argdefault = "";
     133  arg_ainfo.savedarginfo = cgiarginfo::must;
     134  argsinfo.addarginfo (NULL, arg_ainfo);
     135
     136  arg_ainfo.shortname = "bc1inputdir4";
     137  arg_ainfo.longname = "collector specific";
     138  arg_ainfo.multiplechar = true;
     139  arg_ainfo.defaultstatus = cgiarginfo::weak;
     140  arg_ainfo.argdefault = "";
     141  arg_ainfo.savedarginfo = cgiarginfo::must;
     142  argsinfo.addarginfo (NULL, arg_ainfo);
     143
     144  // only set when one of the fields was changed in
     145  // the "collection info" page
     146  arg_ainfo.shortname = "bc1infochanged";
     147  arg_ainfo.longname = "collector specific";
     148  arg_ainfo.multiplechar = false;
     149  arg_ainfo.defaultstatus = cgiarginfo::weak;
     150  arg_ainfo.argdefault = "0";
    62151  arg_ainfo.savedarginfo = cgiarginfo::mustnot;
    63152  argsinfo.addarginfo (NULL, arg_ainfo);
    64153
    65   arg_ainfo.shortname = "bc1fullname";
    66   arg_ainfo.longname = "collector specific";
    67   arg_ainfo.multiplechar = true;
    68   arg_ainfo.defaultstatus = cgiarginfo::weak;
    69   arg_ainfo.argdefault = "";
    70   arg_ainfo.savedarginfo = cgiarginfo::must;
    71   argsinfo.addarginfo (NULL, arg_ainfo);
    72 
    73   arg_ainfo.shortname = "bc1dirname";
    74   arg_ainfo.longname = "collector specific";
    75   arg_ainfo.multiplechar = true;
    76   arg_ainfo.defaultstatus = cgiarginfo::weak;
    77   arg_ainfo.argdefault = "";
    78   arg_ainfo.savedarginfo = cgiarginfo::must;
    79   argsinfo.addarginfo (NULL, arg_ainfo);
    80 
    81   arg_ainfo.shortname = "bc1contactemail";
    82   arg_ainfo.longname = "collector specific";
    83   arg_ainfo.multiplechar = true;
    84   arg_ainfo.defaultstatus = cgiarginfo::weak;
    85   arg_ainfo.argdefault = "";
    86   arg_ainfo.savedarginfo = cgiarginfo::must;
    87   argsinfo.addarginfo (NULL, arg_ainfo);
    88 
    89   arg_ainfo.shortname = "bc1aboutdesc";
    90   arg_ainfo.longname = "collector specific";
    91   arg_ainfo.multiplechar = true;
    92   arg_ainfo.defaultstatus = cgiarginfo::weak;
    93   arg_ainfo.argdefault = "";
    94   arg_ainfo.savedarginfo = cgiarginfo::must;
    95   argsinfo.addarginfo (NULL, arg_ainfo);
    96 
    97   arg_ainfo.shortname = "bc1clone";
    98   arg_ainfo.longname = "collector specific";
    99   arg_ainfo.multiplechar = false;
    100   arg_ainfo.defaultstatus = cgiarginfo::weak;
    101   arg_ainfo.argdefault = "0";
    102   arg_ainfo.savedarginfo = cgiarginfo::must;
    103   argsinfo.addarginfo (NULL, arg_ainfo);
    104 
    105   arg_ainfo.shortname = "bc1clonecol";
    106   arg_ainfo.longname = "collector specific";
    107   arg_ainfo.multiplechar = true;
    108   arg_ainfo.defaultstatus = cgiarginfo::weak;
    109   arg_ainfo.argdefault = "";
    110   arg_ainfo.savedarginfo = cgiarginfo::must;
    111   argsinfo.addarginfo (NULL, arg_ainfo);
    112 
    113   arg_ainfo.shortname = "bc1inputdir1";
    114   arg_ainfo.longname = "collector specific";
    115   arg_ainfo.multiplechar = true;
    116   arg_ainfo.defaultstatus = cgiarginfo::weak;
    117   arg_ainfo.argdefault = "";
    118   arg_ainfo.savedarginfo = cgiarginfo::must;
    119   argsinfo.addarginfo (NULL, arg_ainfo);
    120 
    121   arg_ainfo.shortname = "bc1inputdir2";
    122   arg_ainfo.longname = "collector specific";
    123   arg_ainfo.multiplechar = true;
    124   arg_ainfo.defaultstatus = cgiarginfo::weak;
    125   arg_ainfo.argdefault = "";
    126   arg_ainfo.savedarginfo = cgiarginfo::must;
    127   argsinfo.addarginfo (NULL, arg_ainfo);
    128 
    129   arg_ainfo.shortname = "bc1inputdir3";
    130   arg_ainfo.longname = "collector specific";
    131   arg_ainfo.multiplechar = true;
    132   arg_ainfo.defaultstatus = cgiarginfo::weak;
    133   arg_ainfo.argdefault = "";
    134   arg_ainfo.savedarginfo = cgiarginfo::must;
    135   argsinfo.addarginfo (NULL, arg_ainfo);
    136 
    137   arg_ainfo.shortname = "bc1inputdir4";
    138   arg_ainfo.longname = "collector specific";
    139   arg_ainfo.multiplechar = true;
    140   arg_ainfo.defaultstatus = cgiarginfo::weak;
    141   arg_ainfo.argdefault = "";
    142   arg_ainfo.savedarginfo = cgiarginfo::must;
    143   argsinfo.addarginfo (NULL, arg_ainfo);
    144 
     154  // only set when cfg file is altered from within
     155  // "configure collection" page
    145156  arg_ainfo.shortname = "bc1cfgchanged";
    146157  arg_ainfo.longname = "collector specific";
     
    186197
    187198bool collectoraction::check_cgiargs (cgiargsinfoclass &/*argsinfo*/, cgiargsclass &args,
    188                      ostream &/*logout*/) {
     199                     ostream &logout) {
    189200
    190201  if (args["cp"] != "intro") {
     
    194205  }
    195206
    196   if ((args["pcp"] == "info") && args["bc1dirname"].empty()) {
    197     // we've just come from the "collection information" page for the
    198     // first time so we'll need to create the collection with mkcol.pl
    199     // and set up bc1dirname - we do this part here instead of in do_action
    200     // because the bc1dirname argument must be set to its new value before
    201     // the compressedoptions macros are set.
    202     args["bc1dirname"] = get_directory_name (args["bc1fullname"]);
    203     do_mkcol = true;
     207  if (args["bc1infochanged"] == "1") {
     208
     209    if (args["bc1dirname"].empty()) {
     210      // we've just come from the "collection information" page for the
     211      // first time so we'll need to create the collection with mkcol.pl
     212      // and set up bc1dirname - we do this part here instead of in do_action
     213      // because the bc1dirname argument must be set to its new value before
     214      // the compressedoptions macros are set.
     215      args["bc1dirname"] = get_directory_name (args["bc1fullname"]);
     216      do_mkcol = true;
     217
     218    } else {
     219      // "collection information" has been changed after collection was made
     220      // so we'll need to update the cfg file.
     221      update_cfgfile_partial (args, logout);
     222    }
    204223  }
    205224
     
    208227    // page. we need to update the file on disk and catch bc1 arguments up
    209228    // with changes.
    210 
    211 
    212   }
    213 
     229    update_cfgfile_complete (args, logout);
     230  }
     231 
    214232  return true;
     233}
     234
     235// update configuration file on disk to match bc1 arguments
     236void collectoraction::update_cfgfile_partial (cgiargsclass &args, ostream &logout) {
     237
     238  text_t cfgfile = filename_cat(gsdlhome, "collect", args["bc1dirname"], "etc", "collect.cfg");
     239  char *cfgfilec = cfgfile.getcstr();
     240
     241  vector<text_tarray> cfgarray;
     242
     243  // read in cfg file
     244  ifstream cfg_in (cfgfilec);
     245  if (cfg_in) {
     246    text_tarray cfgline;
     247    while (read_cfg_line(cfg_in, cfgline) >= 0) {
     248      if (cfgline.size () >= 2) {
     249    if (cfgline[0] == "creator") {
     250      cfgline[1] = args["bc1contactemail"];
     251    } else if (cfgline[0] == "collectionmeta") {
     252      if (cfgline[1] == "collectionname") {
     253        cfgline[2] = args["bc1fullname"];
     254      } else if (cfgline[1] == "collectionextra") {
     255        cfgline[2] = carriage_replace (args["bc1aboutdesc"], 0);
     256      }
     257    }
     258      }
     259      cfgarray.push_back (cfgline);
     260    }
     261    cfg_in.close();
     262
     263    // now write cfg file back out
     264    ofstream cfg_out (cfgfilec);
     265    if (cfg_out) {
     266      // lock the file
     267      int fd = GSDL_GET_FILEDESC(cfg_out);
     268      int lock_val = 1;
     269      GSDL_LOCK_FILE (fd);
     270      if (lock_val != 0) {
     271    logout << "Error: Couldn't lock file " << cfgfilec << "\n";
     272    cfg_out.close();
     273   
     274      } else {
     275
     276    vector<text_tarray>::const_iterator this_line = cfgarray.begin();
     277    vector<text_tarray>::const_iterator end_line = cfgarray.end();
     278    while (this_line != end_line) {
     279      write_cfg_line (cfg_out, *this_line);
     280      this_line ++;
     281    }
     282    GSDL_UNLOCK_FILE (fd);
     283    cfg_out.close();
     284      }
     285
     286    } else {
     287      logout << "collectoraction::update_cfgfile_partial: unable to open "
     288         << cfgfilec << " for output\n";
     289    }
     290
     291  } else {
     292    logout << "collectoraction::update_cfgfile_partial: unable to open "
     293       << cfgfilec << " for input\n";
     294  }
     295  delete cfgfilec;
     296}
     297
     298// replace configuration file on disk with that in the bc1cfgfile argument and
     299// catch other bc1 arguments up with those the new cfgfile contains
     300void collectoraction::update_cfgfile_complete (cgiargsclass &args, ostream &logout) {
     301
     302  text_t cfgfile = filename_cat(gsdlhome, "collect", args["bc1dirname"], "etc", "collect.cfg");
     303  char *cfgfilec = cfgfile.getcstr();
     304  ofstream cfg_out (cfgfilec);
     305 
     306  if (cfg_out) {
     307    // lock the file
     308    int fd = GSDL_GET_FILEDESC(cfg_out);
     309    int lock_val = 1;
     310    GSDL_LOCK_FILE (fd);
     311    if (lock_val != 0) {
     312      logout << "Error: Couldn't lock file " << cfgfilec << "\n";
     313      cfg_out.close();
     314     
     315    } else {
     316     
     317      outconvertclass text_t2ascii;
     318      cfg_out << text_t2ascii << args["bc1cfgfile"];
     319      GSDL_UNLOCK_FILE (fd);
     320      cfg_out.close();
     321     
     322      // now that we've written the file we'll read it back again and
     323      // update our bc1 arguments
     324      ifstream cfg_in (cfgfilec);
     325      if (cfg_in) {
     326    text_tarray cfgline;
     327    while (read_cfg_line(cfg_in, cfgline) >= 0) {
     328      if (cfgline.size () >= 2) {
     329        if (cfgline[0] == "creator") {
     330          args["bc1contactemail"] = cfgline[1];
     331        } else if (cfgline[0] == "collectionmeta") {
     332          if (cfgline[1] == "collectionname") {
     333        args["bc1fullname"] = cfgline[2];
     334          } else if (cfgline[1] == "collectionextra") {
     335        args["bc1aboutdesc"] = carriage_replace (cfgline[2], 1);
     336          }
     337        }
     338      }
     339    }
     340    cfg_in.close();
     341      } else {
     342    logout << "collectoraction::update_cfgfile_complete: unable to open "
     343           << cfgfilec << " for input\n";
     344      }
     345    }
     346  } else {
     347    logout << "collectoraction::update_cfgfile_complete: unable to open "
     348       << cfgfilec << " for output\n";
     349  }
     350  delete cfgfilec;
    215351}
    216352
     
    330466
    331467// set the _cfgfile_ macro
    332 void collectoraction::set_cfgfile (displayclass &disp, const text_t &dirname) {
     468void collectoraction::set_cfgfile (displayclass &disp, const text_t &dirname, ostream &logout) {
    333469
    334470  // read in collect.cfg     
     
    342478#endif
    343479 
    344   delete cfgfilec;
    345 
    346480  if (cfg_ifs) { 
    347481    // read in collect.cfg     
     
    350484    cfg_ifs.get(c);
    351485    while (!cfg_ifs.eof ()) {
     486      if (c=='\\') cfgtext.push_back('\\');
    352487      cfgtext.push_back(c);
    353488      cfg_ifs.get(c);
     
    357492    // define it as a macro
    358493    disp.setmacro("cfgfile","collector",cfgtext);
    359   }
     494
     495  } else {
     496    logout << "collectoraction::set_cfgfile: couldn't open configuration file ("
     497       << cfgfilec << ") for reading\n";
     498  }   
     499  delete cfgfilec;
    360500}
    361501
     
    423563    collectorbar += get_button (collector_page, "grey", "view", false);
    424564    collectorbar += "</tr><tr><td colspan=4></td><td align=center>_icongreyuparrow_</td><td colspan=4></td>\n";
     565
     566  } else if (collector_page == "bild") {
     567
     568
    425569  }
    426570
     
    429573
    430574  if (collector_page == "srce") set_fullnamemenu (disp, args, protos, logout);
    431   if (collector_page == "conf") set_cfgfile (disp, args["bc1dirname"]);
     575  if (collector_page == "conf") set_cfgfile (disp, args["bc1dirname"], logout);
    432576}
    433577
     
    458602  }
    459603
     604  if (collector_page == "bild") {
     605    // do the work (download, import, build)
     606    text_t build_cmd = "perl " + filename_cat (gsdlhome, "bin", "script", "build");
     607    if (!args["bc1inputdir1"].empty()) {
     608      build_cmd += " -download \"" + args["bc1inputdir1"] + "\"";
     609    }
     610    if (!args["bc1inputdir2"].empty()) {
     611      build_cmd += " -download \"" + args["bc1inputdir2"] + "\"";
     612    }
     613    if (!args["bc1inputdir3"].empty()) {
     614      build_cmd += " -download \"" + args["bc1inputdir3"] + "\"";
     615    }
     616    if (!args["bc1inputdir4"].empty()) {
     617      build_cmd += " -download \"" + args["bc1inputdir4"] + "\"";
     618    }
     619    build_cmd.push_back (' ');
     620    build_cmd += args["bc1dirname"];
     621
     622#if !defined (__WIN32__)
     623    // run in background on unix systems
     624    build_cmd += " &";
     625#endif
     626    char *build_cmdc = build_cmd.getcstr();
     627#if defined (__WIN32__)
     628    gsdl_system (build_cmdc, logout);
     629#else
     630    system (build_cmdc);
     631#endif
     632    delete build_cmdc;
     633  }
    460634
    461635  if (error.empty()) {
  • trunk/gsdl/src/recpt/collectoraction.h

    r1419 r1425  
    4747             recptprotolistclass *protos, ostream &logout);
    4848
    49   void set_cfgfile (displayclass &disp, const text_t &dirname);
     49  void set_cfgfile (displayclass &disp, const text_t &dirname, ostream &logout);
     50
     51  void update_cfgfile_partial (cgiargsclass &args, ostream &logout);
     52
     53  void update_cfgfile_complete (cgiargsclass &args, ostream &logout);
    5054
    5155  text_t carriage_replace (const text_t &intext, int sw);
Note: See TracChangeset for help on using the changeset viewer.