///////////////////////////////////////////////////////////////////////////////
// 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;