/////////////////////////////////////////////////////////////////////////////// // EVENT: Installed event is sent just after files for the // Common feature are transferred. /////////////////////////////////////////////////////////////////////////////// export prototype Common_Installed(); function Common_Installed() STRING cmd, cmdline, dbfile; STRING batfiledisk, batfiledir, batfile; NUMBER nvFileHandle; STRING svResult; NUMBER nvResult; NUMBER nvSize; STRING svName; begin // use setpw to set the admin password // in the users.db database dbfile = INSTALLDIR ^ "etc" ^ "users.db"; cmd = "\"" + INSTALLDIR ^ "bin" ^ "windows" ^ "setpw.exe\""; cmdline = " -u admin -p " + svAdminPassword + " -o \"" + dbfile + "\""; if (LaunchApp(cmd, cmdline) != 0) then MessageBox(@TEXT_SETPW_FAIL, WARNING); endif; nvSize = 256; MsiGetProperty (ISMSI_HANDLE, "ISReleaseFlags", svName, nvSize); // Add the dummy "demo" user if this is a CD-ROM release if (svName % "CDROM_ONLY") then // Write a batch file to add the dummy "demo" user with "demo" password for the authen-e collection GetDisk(INSTALLDIR, batfiledisk); batfiledir = INSTALLDIR ^ "etc"; batfile = batfiledir ^ "demouser.bat"; OpenFileMode(FILE_MODE_APPEND); CreateFile(nvFileHandle, batfiledir, "demouser.bat"); FileInsertLine(batfile, "@" + batfiledisk, 0, AFTER); FileInsertLine(batfile, "@cd \"" + batfiledir + "\"", 1, AFTER); FileInsertLine(batfile, "@type demouser.txt | ..\\bin\\windows\\txt2db -append users.db", 2, AFTER); FileInsertLine(batfile, "@del demouser.txt", 3, AFTER); FileInsertLine(batfile, "@del demouser.bat", 4, AFTER); CloseFile(nvFileHandle); // Run the batch file, slightly differently depending on version of Windows GetSystemInfo(OS, nvResult, svResult); if (nvResult = IS_WINDOWSNT) then cmd = "cmd.exe"; else cmd = "command.com"; endif; cmdline = "/C \"" + batfile + "\""; if (LaunchAppAndWait(cmd, cmdline, WAIT) != 0) then MessageBox("Could not add demo user.", WARNING); endif; endif; // rename the language specific READMEnn.TXT file to README.TXT // (and edit main.cfg to make the default french, spanish or russian if appropriate) if (SELECTED_LANGUAGE = ISLANG_ENGLISH_UNITEDSTATES) then RenameFile(INSTALLDIR ^ "READMEen.txt", INSTALLDIR ^ "README.TXT"); elseif (SELECTED_LANGUAGE = ISLANG_FRENCH_STANDARD) then RenameFile(INSTALLDIR ^ "READMEfr.txt", INSTALLDIR ^ "README.TXT"); FileInsertLine (INSTALLDIR ^ "etc" ^ "main.cfg", "cgiarg shortname=l argdefault=fr", 0, BEFORE); elseif (SELECTED_LANGUAGE = ISLANG_SPANISH_TRADITIONALSORT) then RenameFile(INSTALLDIR ^ "READMEes.txt", INSTALLDIR ^ "README.TXT"); FileInsertLine (INSTALLDIR ^ "etc" ^ "main.cfg", "cgiarg shortname=l argdefault=es", 0, BEFORE); elseif (SELECTED_LANGUAGE = 1049) then // Russian RenameFile(INSTALLDIR ^ "READMEru.txt-cp1251", INSTALLDIR ^ "README.TXT"); FileInsertLine (INSTALLDIR ^ "etc" ^ "main.cfg", "cgiarg shortname=l argdefault=ru", 0, BEFORE); endif; // if installing on NT/2000 we need to set permissions // in a few places SetPermissions(); end; /////////////////////////////////////////////////////////////////////////////// // EVENT: Installed event is sent just after files for the // Documentation feature are transferred. /////////////////////////////////////////////////////////////////////////////// export prototype Documentation_Installed(); function Documentation_Installed() begin // Rename the language specific manuals if (SELECTED_LANGUAGE = ISLANG_ENGLISH_UNITEDSTATES) then RenameFile(INSTALLDIR ^ "docs" ^ "User-en.pdf", INSTALLDIR ^ "docs" ^ "User.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Develop-en.pdf", INSTALLDIR ^ "docs" ^ "Develop.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Install-en.pdf", INSTALLDIR ^ "docs" ^ "Install.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Paper-en.pdf", INSTALLDIR ^ "docs" ^ "Paper.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Organize-en.pdf", INSTALLDIR ^ "docs" ^ "Organize.pdf"); elseif (SELECTED_LANGUAGE = ISLANG_FRENCH_STANDARD) then RenameFile(INSTALLDIR ^ "docs" ^ "User-fr.pdf", INSTALLDIR ^ "docs" ^ "User.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Develop-fr.pdf", INSTALLDIR ^ "docs" ^ "Develop.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Install-fr.pdf", INSTALLDIR ^ "docs" ^ "Install.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Paper-fr.pdf", INSTALLDIR ^ "docs" ^ "Paper.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Organize-fr.pdf", INSTALLDIR ^ "docs" ^ "Organize.pdf"); elseif (SELECTED_LANGUAGE = ISLANG_SPANISH_TRADITIONALSORT) then RenameFile(INSTALLDIR ^ "docs" ^ "User-es.pdf", INSTALLDIR ^ "docs" ^ "User.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Develop-es.pdf", INSTALLDIR ^ "docs" ^ "Develop.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Install-es.pdf", INSTALLDIR ^ "docs" ^ "Install.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Paper-es.pdf", INSTALLDIR ^ "docs" ^ "Paper.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Organize-es.pdf", INSTALLDIR ^ "docs" ^ "Organize.pdf"); elseif (SELECTED_LANGUAGE = 1049) then RenameFile(INSTALLDIR ^ "docs" ^ "User-ru.pdf", INSTALLDIR ^ "docs" ^ "User.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Develop-ru.pdf", INSTALLDIR ^ "docs" ^ "Develop.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Install-ru.pdf", INSTALLDIR ^ "docs" ^ "Install.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Paper-ru.pdf", INSTALLDIR ^ "docs" ^ "Paper.pdf"); RenameFile(INSTALLDIR ^ "docs" ^ "Organize-ru.pdf", INSTALLDIR ^ "docs" ^ "Organize.pdf"); endif; end; /////////////////////////////////////////////////////////////////////////////// // EVENT: Installed event is sent just after files for the // LocalLibrary feature are transferred. /////////////////////////////////////////////////////////////////////////////// export prototype LocalLibrary_Installed(); function LocalLibrary_Installed() begin LaunchAppAndWait(INSTALLDIR ^ "server.exe", "--cmd=init", WAIT); end; /////////////////////////////////////////////////////////////////////////////// // EVENT: Installed event is sent just after files for the // WebLibrary or SourceCode features are transferred. /////////////////////////////////////////////////////////////////////////////// export prototype WebLibrary_Installed(); function WebLibrary_Installed() STRING svReturnLine, szInsertLine, szFileName, svGSDLHOME; NUMBER nResult, nvLineNumber; STRING szTitle, szMsg, svTmp; STRING szServerTxt, svCgiBin; LIST listInfo; begin svGSDLHOME = INSTALLDIR; // edit the gsdlsite.cfg file VarSave(SRCTARGETDIR); StrRemoveLastSlash(svGSDLHOME); SRCDIR = INSTALLDIR ^ "cgi-bin"; szFileName = INSTALLDIR ^ "cgi-bin" ^ "gsdlsite.cfg"; // if filegrep fails it's probably because gsdlsite.cfg has already // been edited by a previous call to WebLibrary_Installed (this will // happen if both the SourceCode and WebLibrary features are being // installed) nResult = FileGrep(szFileName, "**GSDLHOME**", svReturnLine, nvLineNumber, RESTART); if (nResult = 0) then szInsertLine = "gsdlhome \"" + svGSDLHOME + "\""; FileInsertLine("gsdlsite.cfg", szInsertLine, nvLineNumber, REPLACE); nResult = FileGrep(szFileName, "#httpprefix", svReturnLine, nvLineNumber, RESTART); if (nResult = 0) then szInsertLine = "httpprefix /gsdl"; FileInsertLine("gsdlsite.cfg", szInsertLine, nvLineNumber, REPLACE); else MessageBox(@TEXT_FILEGREP_FAILED, WARNING); endif; nResult = FileGrep(szFileName, "httpimg /images", svReturnLine, nvLineNumber, RESTART); if (nResult = 0) then szInsertLine = "httpimg /gsdl/images"; FileInsertLine("gsdlsite.cfg", szInsertLine, nvLineNumber, REPLACE); else MessageBox(@TEXT_FILEGREP_FAILED, WARNING); endif; endif; VarRestore(SRCTARGETDIR); // Create and display the SERVER.TXT file (will already exist if // this is the second call to this function) if (!Is(FILE_EXISTS, INSTALLDIR ^ "SERVER.TXT")) then szServerTxt = INSTALLDIR ^ "SERVER.TXT"; svCgiBin = INSTALLDIR ^ "cgi-bin"; szTitle = ""; szMsg = " "; listInfo = ListCreate(STRINGLIST); ListAddString(listInfo, @TEXT_SERVERTXT_01, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_02, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_03, AFTER); ListAddString(listInfo, " ", AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_04, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_05, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_06, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_07, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_08, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_09, AFTER); ListAddString(listInfo, " ", AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_10, AFTER); Sprintf(svTmp, @TEXT_SERVERTXT_11, szServerTxt); ListAddString(listInfo, svTmp, AFTER); ListAddString(listInfo, " ", AFTER); Sprintf(svTmp, @TEXT_SERVERTXT_12, TARGETDIR); ListAddString(listInfo, svTmp, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_13, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_14, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_15, AFTER); Sprintf(svTmp, @TEXT_SERVERTXT_16, svCgiBin); ListAddString(listInfo, svTmp, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_17, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_18, AFTER); ListAddString(listInfo, " ", AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_19, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_20, AFTER); ListAddString(listInfo, " ", AFTER); rs(svCgiBin); rs(svGSDLHOME); ListAddString(listInfo, " ScriptAlias /gsdl/cgi-bin \"" + svCgiBin + "/\"", AFTER); ListAddString(listInfo, " ", AFTER); ListAddString(listInfo, " Options None", AFTER); ListAddString(listInfo, " AllowOverride None", AFTER); ListAddString(listInfo, " ", AFTER); ListAddString(listInfo, " ", AFTER); ListAddString(listInfo, " Alias /gsdl \"" + svGSDLHOME + "/\"", AFTER); ListAddString(listInfo, " ", AFTER); ListAddString(listInfo, " Options Indexes MultiViews FollowSymLinks", AFTER); ListAddString(listInfo, " AllowOverride None", AFTER); ListAddString(listInfo, " Order allow,deny", AFTER); ListAddString(listInfo, " Allow from all", AFTER); ListAddString(listInfo, " ", AFTER); ListAddString(listInfo, " ", AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_21, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_22, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_23, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_24, AFTER); ListAddString(listInfo, " ", AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_25, AFTER); ListAddString(listInfo, @TEXT_SERVERTXT_26, AFTER); ListAddString(listInfo, " ", AFTER); ListWriteToFile(listInfo, szServerTxt); SdShowInfoList(szTitle, szMsg, listInfo); ListDestroy(listInfo); endif; end; /////////////////////////////////////////////////////////////////////////////// // EVENT: Installed event is sent just after files for the // CollectionBuild feature are transferred. /////////////////////////////////////////////////////////////////////////////// export prototype CollectionBuild_Installed(); function CollectionBuild_Installed() STRING svReturnLine, szInsertLine, szFileName, svGSDLHOME; NUMBER nvLineNumber; STRING szRegKey, svValue; NUMBER nvType, nvSize; BOOL bSetRegistry; begin // create those empty directories that are required at // build time CreateDir(INSTALLDIR ^ "tmp"); CreateDir(INSTALLDIR ^ "collect" ^ "modelcol" ^ "import"); CreateDir(INSTALLDIR ^ "collect" ^ "modelcol" ^ "archives"); CreateDir(INSTALLDIR ^ "collect" ^ "modelcol" ^ "building"); CreateDir(INSTALLDIR ^ "collect" ^ "modelcol" ^ "index"); CreateDir(INSTALLDIR ^ "collect" ^ "modelcol" ^ "images"); CreateDir(INSTALLDIR ^ "collect" ^ "modelcol" ^ "perllib"); // edit the setup.bat file (note that **GSDLHOME** may occur multiple times // in setup.bat) VarSave(SRCTARGETDIR); SRCDIR = INSTALLDIR; svGSDLHOME = INSTALLDIR; StrRemoveLastSlash(svGSDLHOME); szFileName = INSTALLDIR ^ "setup.bat"; szInsertLine = "set GSDLHOME=" + svGSDLHOME; if (FileGrep(szFileName, "**GSDLHOME**", svReturnLine, nvLineNumber, RESTART) = 0) then FileInsertLine("setup.bat", szInsertLine, nvLineNumber, REPLACE); while (FileGrep(szFileName, "**GSDLHOME**", svReturnLine, nvLineNumber, CONTINUE) = 0) FileInsertLine("setup.bat", szInsertLine, nvLineNumber, REPLACE); endwhile; endif; // Set the default setup.bat language to be the selected installation language szInsertLine = "set GSDLLANG=en"; if (SELECTED_LANGUAGE = ISLANG_FRENCH_STANDARD) then szInsertLine = "set GSDLLANG=fr"; elseif (SELECTED_LANGUAGE = ISLANG_SPANISH_TRADITIONALSORT) then szInsertLine = "set GSDLLANG=es"; elseif (SELECTED_LANGUAGE = 1049) then // Russian szInsertLine = "set GSDLLANG=ru"; endif; if (FileGrep(szFileName, "set GSDLLANG=", svReturnLine, nvLineNumber, RESTART) = 0) then FileInsertLine(szFileName, szInsertLine, nvLineNumber, REPLACE); endif; VarRestore(SRCTARGETDIR); // edit the build.bat file (note that **GSDLHOME** may occur multiple times // in build.bat) VarSave(SRCTARGETDIR); SRCDIR = INSTALLDIR ^ "bin" ^ "windows"; svGSDLHOME = INSTALLDIR; StrRemoveLastSlash(svGSDLHOME); szFileName = INSTALLDIR ^ "bin" ^ "windows" ^ "build.bat"; szInsertLine = "set GSDLHOME=" + svGSDLHOME; if (FileGrep(szFileName, "**GSDLHOME**", svReturnLine, nvLineNumber, RESTART) = 0) then FileInsertLine("build.bat", szInsertLine, nvLineNumber, REPLACE); while (FileGrep(szFileName, "**GSDLHOME**", svReturnLine, nvLineNumber, CONTINUE) = 0) FileInsertLine("build.bat", szInsertLine, nvLineNumber, REPLACE); endwhile; endif; VarRestore(SRCTARGETDIR); // add cygwin registry entries if they're required - some binaries compiled // with cygwin won't work if these registry entries don't exist RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); svGSDLHOME = INSTALLDIR; bSetRegistry = TRUE; szRegKey = "SOFTWARE\\Cygnus Solutions\\Cygwin\\mounts v2\\/"; if (RegDBKeyExist(szRegKey)=1) then if (RegDBGetKeyValueEx(szRegKey, "native", nvType, svValue, nvSize)=0) then // key is already in registry, make sure the specified path exists if (ExistsDir(svValue) = EXISTS) then // cygwin registry key is ok - leave it be bSetRegistry = FALSE; endif; endif; endif; if (bSetRegistry) then // no valid cygwin key in registry, create it RegDBCreateKeyEx(szRegKey, ""); RegDBSetKeyValueEx(szRegKey, "native", REGDB_STRING, svGSDLHOME, -1); endif; RegDBSetDefaultRoot(HKEY_CLASSES_ROOT); // Copy the appropriate perl resource bundle to be the default szFileName = INSTALLDIR ^ "perllib" ^ "strings.rb"; if (SELECTED_LANGUAGE = ISLANG_ENGLISH_UNITEDSTATES) then CopyFile(INSTALLDIR ^ "perllib" ^ "strings_en.rb", szFileName); elseif (SELECTED_LANGUAGE = ISLANG_FRENCH_STANDARD) then CopyFile(INSTALLDIR ^ "perllib" ^ "strings_fr.rb", szFileName); elseif (SELECTED_LANGUAGE = ISLANG_SPANISH_TRADITIONALSORT) then CopyFile(INSTALLDIR ^ "perllib" ^ "strings_es.rb", szFileName); elseif (SELECTED_LANGUAGE = 1049) then // Russian CopyFile(INSTALLDIR ^ "perllib" ^ "strings_ru.rb", szFileName); endif; // Rename the language specific READMEnn.TXT file to README.TXT if (SELECTED_LANGUAGE = ISLANG_ENGLISH_UNITEDSTATES) then RenameFile(INSTALLDIR ^ "gli" ^ "READMEen.txt", INSTALLDIR ^ "gli" ^ "README.TXT"); elseif (SELECTED_LANGUAGE = ISLANG_FRENCH_STANDARD) then RenameFile(INSTALLDIR ^ "gli" ^ "READMEfr.txt", INSTALLDIR ^ "gli" ^ "README.TXT"); elseif (SELECTED_LANGUAGE = ISLANG_SPANISH_TRADITIONALSORT) then RenameFile(INSTALLDIR ^ "gli" ^ "READMEes.txt", INSTALLDIR ^ "gli" ^ "README.TXT"); elseif (SELECTED_LANGUAGE = 1049) then // Russian RenameFile(INSTALLDIR ^ "gli" ^ "READMEru.txt-cp1251", INSTALLDIR ^ "gli" ^ "README.TXT"); endif; // Set the GLI *.bat language to be the selected installation language szInsertLine = "set GLILANG=en"; if (SELECTED_LANGUAGE = ISLANG_FRENCH_STANDARD) then szInsertLine = "set GLILANG=fr"; elseif (SELECTED_LANGUAGE = ISLANG_SPANISH_TRADITIONALSORT) then szInsertLine = "set GLILANG=es"; elseif (SELECTED_LANGUAGE = 1049) then // Russian szInsertLine = "set GLILANG=ru"; endif; szFileName = INSTALLDIR ^ "gli" ^ "clean.bat"; if (FileGrep(szFileName, "set GLILANG=", svReturnLine, nvLineNumber, RESTART) = 0) then FileInsertLine(szFileName, szInsertLine, nvLineNumber, REPLACE); endif; szFileName = INSTALLDIR ^ "gli" ^ "document.bat"; if (FileGrep(szFileName, "set GLILANG=", svReturnLine, nvLineNumber, RESTART) = 0) then FileInsertLine(szFileName, szInsertLine, nvLineNumber, REPLACE); endif; szFileName = INSTALLDIR ^ "gli" ^ "gli.bat"; if (FileGrep(szFileName, "set GLILANG=", svReturnLine, nvLineNumber, RESTART) = 0) then FileInsertLine(szFileName, szInsertLine, nvLineNumber, REPLACE); endif; szFileName = INSTALLDIR ^ "gli" ^ "makegli.bat"; if (FileGrep(szFileName, "set GLILANG=", svReturnLine, nvLineNumber, RESTART) = 0) then FileInsertLine(szFileName, szInsertLine, nvLineNumber, REPLACE); endif; // Set the default GLI language to be the selected installation language szInsertLine = " en"; if (SELECTED_LANGUAGE = ISLANG_FRENCH_STANDARD) then szInsertLine = " fr"; elseif (SELECTED_LANGUAGE = ISLANG_SPANISH_TRADITIONALSORT) then szInsertLine = " es"; elseif (SELECTED_LANGUAGE = 1049) then // Russian szInsertLine = " ru"; endif; // Edit gli/classes/xml/config.xml and replace the existing line szFileName = INSTALLDIR ^ "gli" ^ "classes" ^ "xml" ^ "config.xml"; if (FileGrep(szFileName, "Argument name=\"general.locale\"", svReturnLine, nvLineNumber, RESTART) = 0) then FileInsertLine(szFileName, szInsertLine, nvLineNumber, REPLACE); endif; // AddFolderIcon(FOLDER_PROGRAMS ^ "Greenstone Digital Library", "(New) Greenstone Librarian Interface", INSTALLDIR ^ "gli" ^ "gli.bat", "gli", INSTALLDIR ^ "gli" ^ "gli.ico", 0, "", RUN_MINIMIZED); end; /////////////////////////////////////////////////////////////////////////////// // EVENT: Uninstalled event is sent just after files for the // Common feature are removed during uninstallation. /////////////////////////////////////////////////////////////////////////////// export prototype Common_Uninstalled(); function Common_Uninstalled() begin DeleteFile(svInstallLocation ^ "README.TXT"); end; /////////////////////////////////////////////////////////////////////////////// // EVENT: Uninstalled event is sent just after files for the // Documentation feature are removed during uninstallation. /////////////////////////////////////////////////////////////////////////////// export prototype Documentation_Uninstalled(); function Documentation_Uninstalled() STRING szFile; begin DeleteFile(svInstallLocation ^ "docs" ^ "Develop.pdf"); DeleteFile(svInstallLocation ^ "docs" ^ "Install.pdf"); DeleteFile(svInstallLocation ^ "docs" ^ "Organize.pdf"); DeleteFile(svInstallLocation ^ "docs" ^ "Paper.pdf"); DeleteFile(svInstallLocation ^ "docs" ^ "User.pdf"); DeleteDir(svInstallLocation ^ "docs", ONLYDIR); end; /////////////////////////////////////////////////////////////////////////////// // EVENT: Uninstalled event is sent just after files for the // LocalLibrary feature are removed during uninstallation. /////////////////////////////////////////////////////////////////////////////// export prototype LocalLibrary_Uninstalled(); function LocalLibrary_Uninstalled() begin DeleteFile(svInstallLocation ^ "gsdlsite.cfg"); end; /////////////////////////////////////////////////////////////////////////////// // EVENT: Uninstalled event is sent just after files for the // WebLibrary feature are removed during uninstallation. /////////////////////////////////////////////////////////////////////////////// export prototype WebLibrary_Uninstalled(); function WebLibrary_Uninstalled() begin DeleteFile(svInstallLocation ^ "SERVER.TXT"); DeleteFile(svInstallLocation ^ "cgi-bin" ^ "oai.log"); DeleteDir(svInstallLocation ^ "cgi-bin", ONLYDIR); end; /////////////////////////////////////////////////////////////////////////////// // EVENT: Uninstalled event is sent just after files for the // CollectionBuild feature are removed during uninstallation. /////////////////////////////////////////////////////////////////////////////// export prototype CollectionBuild_Uninstalled(); function CollectionBuild_Uninstalled() begin DeleteDir(svInstallLocation ^ "collect" ^ "modelcol", ONLYDIR); // Ask the user about deleting all the collections if (AskYesNo(@TEXT_DELETE_ALL_COLLECTIONS, NO) == YES) then DeleteDir(svInstallLocation ^ "collect", ALLCONTENTS); endif; // Delete GLI files DeleteFile(svInstallLocation ^ "glisite.cfg"); DeleteFile(svInstallLocation ^ "gli" ^ "README.TXT"); DeleteFile(svInstallLocation ^ "gli" ^ "classifiers.dat"); DeleteFile(svInstallLocation ^ "gli" ^ "plugins.dat"); DeleteFile(svInstallLocation ^ "gli" ^ "gli.pif"); DeleteDir(svInstallLocation ^ "gli", ONLYDIR); DeleteFile(svInstallLocation ^ "perllib" ^ "strings.rb"); DeleteDir(svInstallLocation ^ "perllib", ONLYDIR); DeleteDir(svInstallLocation ^ "tmp", ALLCONTENTS); // Manually delete GLI shortcut (for Windows 95/98) DeleteFolderIcon(FOLDER_PROGRAMS ^ "Greenstone Digital Library", "Greenstone Librarian Interface"); end;