git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1973 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
		
			
				
	
	
		
			165 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // ================================================================
 | |
| // Logtalk - Open source object-oriented logic programming language
 | |
| // Release 2.30.7
 | |
| //
 | |
| // Copyright (c) 1998-2007 Paulo Moura.  All Rights Reserved.
 | |
| // ================================================================
 | |
| 
 | |
| if (ScriptEngineMajorVersion() < 5 || ScriptEngineMajorVersion() == 5 && ScriptEngineMinorVersion() < 6) {
 | |
| 	WScript.Echo('Error! WSH 5.6 or later version needed for running this script.');
 | |
| 	WScript.Quit(1);
 | |
| }
 | |
| 
 | |
| var WshShell = new ActiveXObject("WScript.Shell");
 | |
| 
 | |
| var WshSystemEnv = WshShell.Environment("SYSTEM");
 | |
| var WshUserEnv = WshShell.Environment("USER");
 | |
| var logtalk_home;
 | |
| var logtalk_user;
 | |
| 
 | |
| if (WshSystemEnv.Item("LOGTALKHOME"))
 | |
| 	logtalk_home = WshSystemEnv.Item("LOGTALKHOME");
 | |
| else if (WshUserEnv.Item("LOGTALKHOME"))
 | |
| 	logtalk_home = WshUserEnv.Item("LOGTALKHOME")
 | |
| else {
 | |
| 	WScript.Echo("The environment variable LOGTALKHOME must be defined first!");
 | |
| 	usage_help();
 | |
| 	WScript.Quit(1);
 | |
| }
 | |
| 
 | |
| var FSObject = new ActiveXObject("Scripting.FileSystemObject");
 | |
| 
 | |
| if (!FSObject.FolderExists(logtalk_home)) {
 | |
| 	WScript.Echo("The environment variable LOGTALKHOME points to a non-existing directory!");
 | |
| 	WScript.Echo("Its current value is: %LOGTALKHOME%");
 | |
| 	WScript.Echo("The variable must be set to your Logtalk installation directory!");
 | |
| 	WScript.Echo("");
 | |
| 	usage_help();
 | |
| 	WScript.Quit(1);
 | |
| }
 | |
| 
 | |
| if (WScript.Arguments.Unnamed.Length > 0)
 | |
| 	usage_help();
 | |
| 
 | |
| if (WshUserEnv.Item("LOGTALKUSER"))
 | |
| 	logtalk_user = WshUserEnv.Item("LOGTALKUSER");
 | |
| else {
 | |
| 	logtalk_user = WshShell.SpecialFolders("MyDocuments") + "\\logtalk";
 | |
| 	WshUserEnv.Item("LOGTALKUSER") = WshShell.SpecialFolders("MyDocuments") + "\\logtalk";
 | |
| 	WScript.Echo("Defined user environment variable LOGTALKUSER.");
 | |
| 	WScript.Echo("");
 | |
| }
 | |
| 
 | |
| if (FSObject.FolderExists(logtalk_user)) {
 | |
| 	var today = new Date();
 | |
| 	var year  = today.getFullYear();
 | |
| 	var month = today.getMonth() + 1;
 | |
| 	var day = today.getDate();
 | |
| 	if (day < 10)
 | |
|         day = "0" + day;
 | |
| 	var hours = today.getHours();
 | |
| 	if (hours < 10)
 | |
|         hours = "0" + hours;
 | |
| 	var mins = today.getMinutes();
 | |
| 	if (mins < 10)
 | |
|         mins = "0" + mins;
 | |
| 	var secs = today.getSeconds();
 | |
| 	date = year + "-" + month + "-" + day + "-" + hours + mins + secs;
 | |
| 	FSObject.MoveFolder(logtalk_user, logtalk_user + " backup " + date);
 | |
| 	WScript.Echo("Created a backup of the existing " + logtalk_user + " directory.");
 | |
| 	WScript.Echo("");
 | |
| }
 | |
| 
 | |
| WScript.Echo("Creating LOGTALKUSER directory:");
 | |
| WScript.Echo("");
 | |
| WScript.Echo("  " + logtalk_user);
 | |
| WScript.Echo("");
 | |
| 
 | |
| FSObject.CreateFolder(logtalk_user);
 | |
| 
 | |
| WScript.Echo("Copying Logtalk files and directories...");
 | |
| FSObject.CopyFolder(logtalk_home + "\\configs", logtalk_user + "\\configs");
 | |
| FSObject.CopyFolder(logtalk_home + "\\contributions", logtalk_user + "\\contributions");
 | |
| FSObject.CopyFolder(logtalk_home + "\\examples", logtalk_user + "\\examples");
 | |
| FSObject.CopyFolder(logtalk_home + "\\libpaths", logtalk_user + "\\libpaths");
 | |
| FSObject.CopyFile(logtalk_user + "\\libpaths\\libpaths.pl", logtalk_user + "\\libpaths\\libpaths_no_env_var.pl");
 | |
| FSObject.CopyFolder(logtalk_home + "\\library", logtalk_user + "\\library");
 | |
| FSObject.CopyFolder(logtalk_home + "\\xml", logtalk_user + "\\xml");
 | |
| 
 | |
| FSObject.DeleteFile(logtalk_user + "\\xml\\lgt2*.*");
 | |
| FSObject.DeleteFile(logtalk_user + "\\xml\\logtalk.dtd");
 | |
| FSObject.DeleteFile(logtalk_user + "\\xml\\logtalk.xsd");
 | |
| 
 | |
| var link = WshShell.CreateShortcut(logtalk_user + "\\manuals.lnk");
 | |
| link.Description = "Shortcut to Logtalk documentation";
 | |
| link.TargetPath = logtalk_home + "\\manuals";
 | |
| link.Save();
 | |
| 
 | |
| link = WshShell.CreateShortcut(logtalk_user + "\\wenv.lnk");
 | |
| link.Description = "Shortcut to Logtalk text editing support";
 | |
| link.TargetPath = logtalk_home + "\\wenv";
 | |
| link.Save();
 | |
| 
 | |
| link = WshShell.CreateShortcut(logtalk_user + "\\xml\\lgt2html.js.lnk");
 | |
| link.Description = "Shortcut to lgt2html script";
 | |
| link.TargetPath = logtalk_home + "\\xml\\lgt2html.js";
 | |
| link.Save();
 | |
| 
 | |
| link = WshShell.CreateShortcut(logtalk_user + "\\xml\\lgt2pdf.js.lnk");
 | |
| link.Description = "Shortcut to lgt2pdf script";
 | |
| link.TargetPath = logtalk_home + "\\xml\\lgt2pdf.js";
 | |
| link.Save();
 | |
| 
 | |
| link = WshShell.CreateShortcut(logtalk_user + "\\xml\\lgt2xml.js.lnk");
 | |
| link.Description = "Shortcut to lgt2xml script";
 | |
| link.TargetPath = logtalk_home + "\\xml\\lgt2xml.js";
 | |
| link.Save();
 | |
| 
 | |
| link = WshShell.CreateShortcut(logtalk_user + "\\xml\\logtalk.dtd.lnk");
 | |
| link.Description = "Shortcut to Logtalk DTD";
 | |
| link.TargetPath = logtalk_home + "\\xml\\logtalk.dtd";
 | |
| link.Save();
 | |
| 
 | |
| link = WshShell.CreateShortcut(logtalk_user + "\\xml\\logtalk.rng.lnk");
 | |
| link.Description = "Shortcut to Logtalk RELAX NG Schema";
 | |
| link.TargetPath = logtalk_home + "\\xml\\logtalk.rng";
 | |
| link.Save();
 | |
| 
 | |
| link = WshShell.CreateShortcut(logtalk_user + "\\xml\\logtalk.xsd.lnk");
 | |
| link.Description = "Shortcut to Logtalk XML Schema";
 | |
| link.TargetPath = logtalk_home + "\\xml\\logtalk.xsd";
 | |
| link.Save();
 | |
| 
 | |
| WScript.Echo("Finished copying Logtalk files and directories.");
 | |
| WScript.Echo("");
 | |
| WScript.Echo("You may need to edit the contents of the file:");
 | |
| WScript.Echo("");
 | |
| WScript.Echo("  " + logtalk_user + "\\libpaths\\libpaths.pl");
 | |
| WScript.Echo("");
 | |
| WScript.Echo("to match your Prolog compiler and operating-system requirements or to");
 | |
| WScript.Echo("add your own library paths.");
 | |
| WScript.Echo("");
 | |
| WScript.Echo("You may want to customize the default Logtalk compiler flags by editing");
 | |
| WScript.Echo("the configuration file for your Prolog compiler found in the directory:");
 | |
| WScript.Echo("");
 | |
| WScript.Echo("  " + logtalk_user + "\\configs");
 | |
| WScript.Echo("");
 | |
| WScript.Echo("See the \%LOGTALKUSER\%\\CUSTOMIZE.txt file for details.");
 | |
| WScript.Echo("");
 | |
| 
 | |
| WScript.Quit(0);
 | |
| 
 | |
| function usage_help() {
 | |
| 	WScript.Echo("");
 | |
| 	WScript.Echo("This script copies the Logtalk user-modifiable files and directories");
 | |
| 	WScript.Echo("to the user home directory. The location can be set by the environment");
 | |
| 	WScript.Echo("variable \%LOGTALKUSER\% (defaults to MyDocuments\\logtalk when the");
 | |
| 	WScript.Echo("variable is not defined)");
 | |
| 	WScript.Echo("");
 | |
| 	WScript.Echo("Usage:");
 | |
| 	WScript.Echo("  " + WScript.ScriptName + " help");
 | |
| 	WScript.Echo("  " + WScript.ScriptName);
 | |
| 	WScript.Echo("");
 | |
| 	WScript.Quit(1);
 | |
| }
 |