Changeset 11944


Ignore:
Timestamp:
2006-06-20T11:37:46+12:00 (18 years ago)
Author:
kjdon
Message:

tidied up the code a bit, added a new option: noinstall, which makes a cd that runs from the cd and doesn't install anything

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/bin/script/exportcol.pl

    r11895 r11944  
    4040
    4141my $arguments =
    42     [ { 'name' => "language",
    43     'desc' => "{scripts.language}",
    44     'type' => "string",
    45     'reqd' => "no" },
    46       { 'name' => "out",
    47     'desc' => "{exportcol.out}",
    48     'type' => "string",
    49     'deft' => "STDERR",
    50     'reqd' => "no" },
     42    [
    5143      { 'name' => "cdname",
    5244    'desc' => "{exportcol.cdname}",
     
    5850    'type' => "string",
    5951    'deft' => "exported_collections",
     52    'reqd' => "no" },
     53      { 'name' => "noinstall",
     54    'desc' => "{exportcol.noinstall}",
     55    'type' => "flag",
     56    'reqd' => "no" },
     57      { 'name' => "language",
     58    'desc' => "{scripts.language}",
     59    'type' => "string",
     60    'reqd' => "no" },
     61      { 'name' => "out",
     62    'desc' => "{exportcol.out}",
     63    'type' => "string",
     64    'deft' => "STDERR",
    6065    'reqd' => "no" },
    6166      { 'name' => "xml",
     
    8590
    8691sub main {
    87     my ($language, $out, $cdname, $cddir, $gli);
    88 
     92    my ($language, $out, $cdname, $cddir);
     93   
     94    my $noinstall = 0;
    8995    my $xml = 0;
     96    my $gli = 0;
    9097
    9198    my $hashParsingResult = {};
     
    115122    }
    116123   
    117     # If $language has been specified, load the appropriate resource bundle
    118     # (Otherwise, the default resource bundle will be loaded automatically)
    119     if ($language) {
    120     &gsprintf::load_language_specific_resource_bundle($language);
    121     }
    122 
    123     if ($xml) {
    124         &PrintUsage::print_xml_usage($options);
    125     die "\n";
    126     }
    127 
    128     if ($gli) { # the gli wants strings to be in UTF-8
    129     &gsprintf::output_strings_in_UTF8;
    130     }
    131 
    132124    my @coll_list = @ARGV;
    133125   
     
    187179    }
    188180
    189     # make other directories (we'll assume that if we created topdir
    190     # successfully there'll be no problems creating these)
    191     my $gsdldir = &util::filename_cat ($topdir, "gsdl");
    192     &util::mk_all_dir ($gsdldir);
     181    # we create either a self installing cd, or one that runs off the cd (and
     182    # doesn't install anything
     183
     184    # create all the directories - we assume that if we created the top dir ok,
     185    # then all the other mkdirs will go ok
     186    my $gsdldir;
     187    if ($noinstall) {
     188    $gsdldir = $topdir;
     189    }
     190    else {
     191    $gsdldir = &util::filename_cat ($topdir, "gsdl");
     192    &util::mk_all_dir ($gsdldir);
     193    }
     194   
    193195    my $collectdir = &util::filename_cat ($gsdldir, "collect");
    194196    &util::mk_all_dir ($collectdir);
     
    198200    &util::mk_all_dir ($binjavadir);
    199201
    200     # create the install.cfg file
    201     my $installcfg = &util::filename_cat ($topdir, "install.cfg");
    202     if (!open (INSTALLCFG, ">$installcfg")) {
    203     &gsprintf($out, "{exportcol.fail} {exportcol.couldnt_create_file}\n", $installcfg);
    204     die "\n";
    205     }
    206     print INSTALLCFG "CompanyName:New Zealand Digital Library\n";
    207     print INSTALLCFG "CollectionName:$cdname\n";
    208     print INSTALLCFG "CollectionDirName:$cdname\n";
    209     print INSTALLCFG "CollectionVersion:1.0\n";
    210     print INSTALLCFG "CollectionVolume:1\n";
    211     print INSTALLCFG "ProgramGroupName:Greenstone\n";
    212     close INSTALLCFG;
    213 
    214     # create the manifest.cfg file
    215     my $manifestcfg = &util::filename_cat ($topdir, "manifest.cfg");
    216     if (!open (MANIFESTCFG, ">$manifestcfg")) {
    217     &gsprintf($out, "{exportcol.fail} {exportcol.couldnt_create_file}\n", $manifestcfg);
    218     die "\n";
    219     }
    220     print MANIFESTCFG "all:\n";
    221     print MANIFESTCFG "  {library} {collection}\n\n";
    222     print MANIFESTCFG "library:\n";
    223     print MANIFESTCFG "  server.exe\n\n";
    224     print MANIFESTCFG "database:\n";
    225     print MANIFESTCFG '  etc ';
    226     foreach my $c (@valid_coll_list) {
    227     print MANIFESTCFG "collect\\$c\\index\\text\\$c.ldb ";
    228     }
    229     print MANIFESTCFG "\n\n";
    230     print MANIFESTCFG "collection:\n";
    231     print MANIFESTCFG "  collect etc images macros mappings bin\n";
    232     close MANIFESTCFG;
     202    #create the config files
     203    if (!$noinstall) {
     204    # create the install.cfg file
     205    my $installcfg = &util::filename_cat ($topdir, "install.cfg");
     206    if (!open (INSTALLCFG, ">$installcfg")) {
     207        &gsprintf($out, "{exportcol.fail} {exportcol.couldnt_create_file}\n", $installcfg);
     208        die "\n";
     209    }
     210    print INSTALLCFG "CompanyName:New Zealand Digital Library\n";
     211    print INSTALLCFG "CollectionName:$cdname\n";
     212    print INSTALLCFG "CollectionDirName:$cdname\n";
     213    print INSTALLCFG "CollectionVersion:1.0\n";
     214    print INSTALLCFG "CollectionVolume:1\n";
     215    print INSTALLCFG "ProgramGroupName:Greenstone\n";
     216    close INSTALLCFG;
     217   
     218    # create the manifest.cfg file
     219    my $manifestcfg = &util::filename_cat ($topdir, "manifest.cfg");
     220    if (!open (MANIFESTCFG, ">$manifestcfg")) {
     221        &gsprintf($out, "{exportcol.fail} {exportcol.couldnt_create_file}\n", $manifestcfg);
     222        die "\n";
     223    }
     224    print MANIFESTCFG "all:\n";
     225    print MANIFESTCFG "  {library} {collection}\n\n";
     226    print MANIFESTCFG "library:\n";
     227    print MANIFESTCFG "  server.exe\n\n";
     228    print MANIFESTCFG "database:\n";
     229    print MANIFESTCFG '  etc ';
     230    foreach my $c (@valid_coll_list) {
     231        print MANIFESTCFG "collect\\$c\\index\\text\\$c.ldb ";
     232    }
     233    print MANIFESTCFG "\n\n";
     234    print MANIFESTCFG "collection:\n";
     235    print MANIFESTCFG "  collect etc images macros mappings bin\n";
     236    close MANIFESTCFG;
     237   
     238    }   
    233239
    234240    #create the autorun.inf file
     
    238244    die "\n";
    239245    }
    240 
     246   
    241247    print AUTORUNINF "[autorun]\n";
    242     print AUTORUNINF "OPEN=Setup.exe\n";
     248    if ($noinstall) {
     249    print AUTORUNINF "OPEN=server.exe\n";
     250    } else {
     251    print AUTORUNINF "OPEN=Setup.exe\n";
     252    }
    243253    close AUTORUNINF;
    244 
     254   
    245255    # copy the necessary stuff from GSDLHOME
    246256    my $imagesdir = &util::filename_cat ($ENV{'GSDLHOME'}, "images");
     
    249259    my $maincfg = &util::filename_cat ($ENV{'GSDLHOME'}, "etc", "main.cfg");
    250260    my $serverexe = &util::filename_cat ($ENV{'GSDLHOME'}, "bin", "windows", "server.exe");
    251     #my $gssetupexe = &util::filename_cat ($ENV{'GSDLHOME'}, "bin", "windows", "gssetup.exe"); - have checked this earlier
    252261    my $setupexe = &util::filename_cat ($ENV{'GSDLHOME'}, "bin", "windows", "Setup.exe");
    253     #my $net32dir = &util::filename_cat ($ENV{'GSDLHOME'}, "bin", "windows", "net32");
    254     #my $net16dir = &util::filename_cat ($ENV{'GSDLHOME'}, "bin", "windows", "net16");
    255     #my $win32sdir = &util::filename_cat ($ENV{'GSDLHOME'}, "bin", "windows", "Win32s");
    256262    my $phindjar = &util::filename_cat ($ENV{'GSDLHOME'}, "bin", "java", "Phind.jar");
    257263    my $gsdlcollageappletjar = &util::filename_cat ($ENV{'GSDLHOME'}, "bin", "java", "GsdlCollageApplet.jar");
     
    268274    &gsprintf($out, "  $gssetupexe\n");
    269275    &gsprintf($out, "  $setupexe\n");
    270 #   &gsprintf($out, "  $net32dir\n");
    271 #   &gsprintf($out, "  $net16dir\n");
    272 #   &gsprintf($out, "  $win32sdir\n");
    273276    &gsprintf($out, "  $phindjar\n");
    274277    &gsprintf($out, "  $gsdlcollageappletjar\n");
     
    281284    &util::cp ($maincfg, $etcdir);
    282285    &util::cp ($serverexe, $gsdldir);
    283     &util::cp ($gssetupexe, $topdir);
    284     &util::cp ($setupexe, $topdir);
    285 #    &util::cp_r ($net32dir, $gsdldir);
    286 #    &util::cp_r ($net16dir, $gsdldir);
    287 #    &util::cp_r ($win32sdir, $topdir);
    288286    &util::cp ($phindjar, $binjavadir);
    289287    &util::cp ($gsdlcollageappletjar, $binjavadir);
    290288
     289    if (!$noinstall) {
     290    &util::cp ($gssetupexe, $topdir);
     291    &util::cp ($setupexe, $topdir);
     292    }   
     293   
    291294    # now change the home.dm macro file to a simple version
    292295    my $newmacrodir = &util::filename_cat ($gsdldir, "macros");
Note: See TracChangeset for help on using the changeset viewer.