From: Gilles Depeyrot <gilles_depeyrot@mac.com>
Date: Fri, 30 Nov 2001 20:59:23 +0000 (+0000)
Subject: added AppleScripts to export/import xml files from/to projects
X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/643b97f8a7f3ba5b2b22fe2545a7b9ec20207d34

added AppleScripts to export/import xml files from/to projects


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12763 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---

diff --git a/docs/mac/BuildSamplesM5.as b/docs/mac/BuildSamplesM5.as
deleted file mode 100755
index 474bf0ad2e..0000000000
--- a/docs/mac/BuildSamplesM5.as
+++ /dev/null
@@ -1,227 +0,0 @@
---
--- File: BuildSamplesM5.as
--- Purpose: Automatic build of samples with CodeWarrior 5
--- Author: Gilles Depeyrot
--- Created: 06.10.2001
---
-
---
--- This AppleScript automatically recurses through the selected folder looking for
--- and building CodeWarrior projects.
--- To use this script, simply open it with the 'Script Editor' and run it.
---
-
---
--- Suffix used to recognize CodeWarrior project files
---
-property gProjectSuffix : "M5.mcp"
-
---
--- Values used to create the log file
---
-property gEol : "
-"
-property gSeparator : "--------------------------------------------------------------------------------" & gEol
-
---
--- Project and build success count
---
-set theProjectCount to 0
-set theProjectSuccessCount to 0
-
---
--- Default log file name
---
-set theDate to (day of (current date)) & "/" & GetMonthIndex(current date) & "/" & (year of (current date))
-set theLogFileName to "wxMac samples " & theDate & ".log"
-
---
--- Ask the user to select the wxWindows samples folder
---
-set theFolder to choose folder with prompt "Select the wxWindows samples folder"
-
---
--- Ask the user to choose the build log file
---
-set theLogFile to choose file name with prompt "Create the wxWindows samples build log file" default name theLogFileName
-
---
--- Open the log file to record the build log
---
-set theLogFileRef to open for access theLogFile with write permission
-
---
--- Write log file header
---
-write gSeparator starting at 0 to theLogFileRef
-write "wxWindows samples build log" & gEol to theLogFileRef
-write gSeparator to theLogFileRef
-write "start on " & ((current date) as string) & gEol to theLogFileRef
-write gSeparator to theLogFileRef
-write "building projects in '" & (theFolder as string) & "'" & gEol to theLogFileRef
-write gSeparator to theLogFileRef
-
---
--- Build or Rebuild targets?
---
-set theText to "Build or rebuild projects?"
-set theBuild to button returned of (display dialog theText buttons {"Cancel", "Build", "Rebuild"} default button "Rebuild" with icon note)
-if theBuild is not equal to "Cancel" then
-	--
-	-- Build which targets?
-	--
-	set theText to theBuild & " Classic or Carbon targets?"
-	set theType to button returned of (display dialog theText buttons {"Cancel", "Classic", "Carbon"} default button "Carbon" with icon note)
-	if theType is not equal to "Cancel" then
-		--
-		-- Build Debug or Release targets?
-		--
-		set theText to theBuild & " " & theType & " Debug or " & theType & " Release targets?"
-		set theOption to button returned of (display dialog theText buttons {"Cancel", "Release", "Debug"} default button "Debug" with icon note)
-		if theOption is not equal to "Cancel" then
-			set theTarget to theType & " " & theOption
-			
-			write "building project targets '" & theTarget & "'" & gEol to theLogFileRef
-			write gSeparator to theLogFileRef
-			
-			BuildProjects(theLogFileRef, theFolder, theTarget, theBuild is equal to "Rebuild")
-			
-		end if
-	end if
-end if
-
---
--- Write log file footer
---
-write "successful build of " & theProjectSuccessCount & " projects out of " & theProjectCount & gEol to theLogFileRef
-write gSeparator to theLogFileRef
-write "end on " & ((current date) as string) & gEol to theLogFileRef
-write gSeparator to theLogFileRef
---
--- Close the log file
---
-close access theLogFileRef
---
--- Open the file in BBEdit Lite
---
-tell application "BBEdit Lite 6.1"
-	activate
-	open theLogFile
-end tell
-
---
--- BuildProjects
---
-on BuildProjects(inLogFileRef, inFolder, inTarget, inRebuild)
-	global theProjectCount, theProjectSuccessCount
-	
-	tell application "Finder" to set theSubFolders to every folder of inFolder
-	
-	repeat with theFolder in theSubFolders
-		
-		tell application "Finder" to set theProject to (the first file of theFolder whose name ends with gProjectSuffix)
-		
-		if theProject as string is not "" then
-			set theProjectCount to theProjectCount + 1
-			write "building project '" & (theProject as string) & "'" & gEol to inLogFileRef
-			
-			tell application "CodeWarrior IDE 4.0.4"
-				--
-				-- Open the project in CodeWarrior
-				--
-				open theProject as string
-				--
-				-- Change to the requested target
-				--
-				Set Current Target inTarget
-				--
-				-- Remove object code if rebuild requested
-				--
-				if inRebuild then
-					Remove Binaries
-				end if
-				--
-				-- Build/Rebuild the selected target
-				--
-				set theBuildInfo to Make Project with ExternalEditor
-				--
-				-- Close the project
-				--
-				Close Project
-			end tell
-			--
-			-- Report errors to build log file
-			--
-			write gEol to inLogFileRef
-			ReportBuildInfo(inLogFileRef, theBuildInfo)
-			write gSeparator to inLogFileRef
-		else
-			BuildProjects(inLogFileRef, theFolder, inTarget, inRebuild)
-		end if
-		
-	end repeat
-end BuildProjects
-
---
--- ReportBuildInfo
---
-on ReportBuildInfo(inLogFileRef, inBuildInfo)
-	global theProjectCount, theProjectSuccessCount
-	
-	set theErrorCount to 0
-	set theWarningCount to 0
-	
-	repeat with theInfo in inBuildInfo
-		tell application "CodeWarrior IDE 4.0.4"
-			set theKind to ((messageKind of theInfo) as string)
-			
-			write "*** " & theKind & " *** " & message of theInfo & gEol to inLogFileRef
-			try
-				set theFile to ((file of theInfo) as string)
-			on error
-				set theFile to ""
-			end try
-			if theFile is not "" then
-				write theFile & " line " & lineNumber of theInfo & gEol to inLogFileRef
-			end if
-			write gEol to inLogFileRef
-		end tell
-		
-		if MessageKindIsError(theKind) then
-			set theErrorCount to theErrorCount + 1
-		else
-			set theWarningCount to theWarningCount + 1
-		end if
-	end repeat
-	
-	if theErrorCount is 0 then
-		set theProjectSuccessCount to theProjectSuccessCount + 1
-		write "build succeeded with " & theWarningCount & " warning(s)" & gEol to inLogFileRef
-	else
-		write "build failed with " & theErrorCount & " error(s) and " & theWarningCount & " warning(s)" & gEol to inLogFileRef
-	end if
-end ReportBuildInfo
-
---
--- MessageKindIsError
---
-on MessageKindIsError(inKind)
-	if inKind is "compiler error" or inKind is "linker error" or inKind is "generic error" then
-		return true
-	else
-		return false
-	end if
-end MessageKindIsError
-
---
--- GetMonthIndex
---
-on GetMonthIndex(inDate)
-	set theMonth to the month of inDate
-	set theMonthList to {January, February, March, April, May, June, July, August, September, October, November, December}
-	repeat with i from 1 to the number of items in theMonthList
-		if theMonth is item i of theMonthList then
-			return i
-		end if
-	end repeat
-end GetMonthIndex
\ No newline at end of file
diff --git a/docs/mac/M5build.applescript b/docs/mac/M5build.applescript
new file mode 100644
index 0000000000..7f674cfd15
--- /dev/null
+++ b/docs/mac/M5build.applescript
@@ -0,0 +1,233 @@
+-----------------------------------------------------------------------------
+-- Name:        docs/mac/M5build.applescript
+-- Purpose:     Automatic build of projects with CodeWarrior 5
+-- Author:      Gilles Depeyrot
+-- Modified by:
+-- Created:     06.10.2001
+-- RCS-ID:      $Id$
+-- Copyright:   (c) 2001 Gilles Depeyrot
+-- Licence:     wxWindows licence
+-----------------------------------------------------------------------------
+--
+-- This AppleScript automatically recurses through the selected folder looking for
+-- and building CodeWarrior projects.
+-- To use this script, simply open it with the 'Script Editor' and run it.
+--
+
+--
+-- Suffix used to recognize CodeWarrior project files
+--
+property gProjectSuffix : "M5.mcp"
+
+--
+-- Values used to create the log file
+--
+property gEol : "
+"
+property gSeparator : "--------------------------------------------------------------------------------" & gEol
+
+--
+-- Project and build success count
+--
+set theProjectCount to 0
+set theProjectSuccessCount to 0
+
+--
+-- Default log file name
+--
+set theDate to (day of (current date)) & "/" & GetMonthIndex(current date) & "/" & (year of (current date))
+set theLogFileName to "wxMac samples " & theDate & ".log"
+
+--
+-- Ask the user to select the wxWindows samples folder
+--
+set theFolder to choose folder with prompt "Select the wxWindows samples folder"
+
+--
+-- Ask the user to choose the build log file
+--
+set theLogFile to choose file name with prompt "Create the wxWindows samples build log file" default name theLogFileName
+
+--
+-- Open the log file to record the build log
+--
+set theLogFileRef to open for access theLogFile with write permission
+
+--
+-- Write log file header
+--
+write gSeparator starting at 0 to theLogFileRef
+write "wxWindows samples build log" & gEol to theLogFileRef
+write gSeparator to theLogFileRef
+write "start on " & ((current date) as string) & gEol to theLogFileRef
+write gSeparator to theLogFileRef
+write "building projects in '" & (theFolder as string) & "'" & gEol to theLogFileRef
+write gSeparator to theLogFileRef
+
+--
+-- Build or Rebuild targets?
+--
+set theText to "Build or rebuild projects?"
+set theBuild to button returned of (display dialog theText buttons {"Cancel", "Build", "Rebuild"} default button "Rebuild" with icon note)
+if theBuild is not equal to "Cancel" then
+	--
+	-- Build which targets?
+	--
+	set theText to theBuild & " Classic or Carbon targets?"
+	set theType to button returned of (display dialog theText buttons {"Cancel", "Classic", "Carbon"} default button "Carbon" with icon note)
+	if theType is not equal to "Cancel" then
+		--
+		-- Build Debug or Release targets?
+		--
+		set theText to theBuild & " " & theType & " Debug or " & theType & " Release targets?"
+		set theOption to button returned of (display dialog theText buttons {"Cancel", "Release", "Debug"} default button "Debug" with icon note)
+		if theOption is not equal to "Cancel" then
+			set theTarget to theType & " " & theOption
+			
+			write "building project targets '" & theTarget & "'" & gEol to theLogFileRef
+			write gSeparator to theLogFileRef
+			
+			BuildProjects(theLogFileRef, theFolder, theTarget, theBuild is equal to "Rebuild")
+			
+		end if
+	end if
+end if
+
+--
+-- Write log file footer
+--
+write "successful build of " & theProjectSuccessCount & " projects out of " & theProjectCount & gEol to theLogFileRef
+write gSeparator to theLogFileRef
+write "end on " & ((current date) as string) & gEol to theLogFileRef
+write gSeparator to theLogFileRef
+--
+-- Close the log file
+--
+close access theLogFileRef
+--
+-- Open the file in BBEdit Lite
+--
+tell application "BBEdit Lite 6.1"
+	activate
+	open theLogFile
+end tell
+
+--
+-- BuildProjects
+--
+on BuildProjects(inLogFileRef, inFolder, inTarget, inRebuild)
+	global theProjectCount, theProjectSuccessCount
+	
+	try
+		tell application "Finder" to set theProject to ((the first file of inFolder whose name ends with gProjectSuffix) as string)
+	on error
+		set theProject to ""
+	end try
+	
+	if theProject is not "" then
+		set theProjectCount to theProjectCount + 1
+		
+		write "building project '" & (theProject as string) & "'" & gEol to inLogFileRef
+		
+		tell application "CodeWarrior IDE 4.0.4"
+			--
+			-- Open the project in CodeWarrior
+			--
+			open theProject as string
+			--
+			-- Change to the requested target
+			--
+			Set Current Target inTarget
+			--
+			-- Remove object code if rebuild requested
+			--
+			if inRebuild then
+				Remove Binaries
+			end if
+			--
+			-- Build/Rebuild the selected target
+			--
+			set theBuildInfo to Make Project with ExternalEditor
+			--
+			-- Close the project
+			--
+			Close Project
+		end tell
+		--
+		-- Report errors to build log file
+		--
+		write gEol to inLogFileRef
+		ReportBuildInfo(inLogFileRef, theBuildInfo)
+		write gSeparator to inLogFileRef
+	end if
+	
+	tell application "Finder" to set theSubFolders to every folder of inFolder
+	repeat with theFolder in theSubFolders
+		BuildProjects(inLogFileRef, theFolder, inTarget, inRebuild)
+	end repeat
+	
+end BuildProjects
+
+--
+-- ReportBuildInfo
+--
+on ReportBuildInfo(inLogFileRef, inBuildInfo)
+	global theProjectCount, theProjectSuccessCount
+	
+	set theErrorCount to 0
+	set theWarningCount to 0
+	
+	repeat with theInfo in inBuildInfo
+		tell application "CodeWarrior IDE 4.0.4"
+			set theKind to ((messageKind of theInfo) as string)
+			
+			write "*** " & theKind & " *** " & message of theInfo & gEol to inLogFileRef
+			try
+				set theFile to ((file of theInfo) as string)
+			on error
+				set theFile to ""
+			end try
+			if theFile is not "" then
+				write theFile & " line " & lineNumber of theInfo & gEol to inLogFileRef
+			end if
+			write gEol to inLogFileRef
+		end tell
+		
+		if MessageKindIsError(theKind) then
+			set theErrorCount to theErrorCount + 1
+		else
+			set theWarningCount to theWarningCount + 1
+		end if
+	end repeat
+	
+	if theErrorCount is 0 then
+		set theProjectSuccessCount to theProjectSuccessCount + 1
+		write "build succeeded with " & theWarningCount & " warning(s)" & gEol to inLogFileRef
+	else
+		write "build failed with " & theErrorCount & " error(s) and " & theWarningCount & " warning(s)" & gEol to inLogFileRef
+	end if
+end ReportBuildInfo
+
+--
+-- MessageKindIsError
+--
+on MessageKindIsError(inKind)
+	if inKind is "compiler error" or inKind is "linker error" or inKind is "generic error" then
+		return true
+	else
+		return false
+	end if
+end MessageKindIsError
+
+--
+-- GetMonthIndex
+--
+on GetMonthIndex(inDate)
+	set theMonth to the month of inDate
+	set theMonthList to {January, February, March, April, May, June, July, August, September, October, November, December}
+	repeat with i from 1 to the number of items in theMonthList
+		if theMonth is item i of theMonthList then
+			return i
+		end if
+	end repeat
+end GetMonthIndex
\ No newline at end of file
diff --git a/docs/mac/M5mcp2xml.applescript b/docs/mac/M5mcp2xml.applescript
new file mode 100644
index 0000000000..6902cfb383
--- /dev/null
+++ b/docs/mac/M5mcp2xml.applescript
@@ -0,0 +1,90 @@
+-----------------------------------------------------------------------------
+-- Name:        docs/mac/M5mcp2xml.applescript
+-- Purpose:     Automatic export of CodeWarrior 5 projects to XML files
+-- Author:      Gilles Depeyrot
+-- Modified by:
+-- Created:     28.11.2001
+-- RCS-ID:      $Id$
+-- Copyright:   (c) 2001 Gilles Depeyrot
+-- Licence:     wxWindows licence
+-----------------------------------------------------------------------------
+--
+-- This AppleScript automatically recurses through the selected folder looking for
+-- and exporting CodeWarrior projects to xml files.
+-- To use this script, simply open it with the 'Script Editor' and run it.
+--
+
+--
+-- Suffix used to recognize CodeWarrior project files
+--
+property gProjectSuffix : "M5.mcp"
+
+--
+-- Project and build success count
+--
+set theProjectCount to 0
+set theProjectSuccessCount to 0
+
+--
+-- Ask the user to select the wxWindows samples folder
+--
+set theFolder to choose folder with prompt "Select the wxWindows folder"
+
+ExportProjects(theFolder)
+
+tell me to display dialog "Exported " & theProjectSuccessCount & " projects out of " & theProjectCount
+
+--
+-- ExportProjects
+--
+on ExportProjects(inFolder)
+	global theProjectCount, theProjectSuccessCount
+	
+	try
+		tell application "Finder" to set theProject to ((the first file of inFolder whose name ends with gProjectSuffix) as string)
+	on error
+		set theProject to ""
+	end try
+	
+	if theProject is not "" then
+		set theProjectCount to theProjectCount + 1
+		
+		-- save the current text delimiters
+		set theDelimiters to my text item delimiters
+		
+		-- replace the ".mcp" extension with ".xml"
+		set my text item delimiters to "."
+		set theList to (every text item of theProject)
+		set theList to (items 1 thru -2 of theList)
+		set theExport to (theList as string) & ".xml"
+		
+		-- restore the text delimiters
+		set my text item delimiters to theDelimiters
+		
+		tell application "CodeWarrior IDE 4.0.4"
+			--
+			-- Open the project in CodeWarrior
+			--
+			open theProject
+			--
+			-- Export the selected project
+			--
+			try
+				export project document 1 in theExport
+				set theProjectSuccessCount to theProjectSuccessCount + 1
+			on error number errnum
+				tell me to display dialog "Error " & errnum & " exporting " & theExport
+			end try
+			--
+			-- Close the project
+			--
+			Close Project
+		end tell
+	end if
+	
+	tell application "Finder" to set theSubFolders to every folder of inFolder
+	repeat with theFolder in theSubFolders
+		ExportProjects(theFolder)
+	end repeat
+	
+end ExportProjects
diff --git a/docs/mac/M5xml2mcp.applescript b/docs/mac/M5xml2mcp.applescript
new file mode 100644
index 0000000000..9d993d6e74
--- /dev/null
+++ b/docs/mac/M5xml2mcp.applescript
@@ -0,0 +1,86 @@
+-----------------------------------------------------------------------------
+-- Name:        docs/mac/M5xml2mcp.applescript
+-- Purpose:     Automatic import of CodeWarrior 5 xml files to projects
+-- Author:      Gilles Depeyrot
+-- Modified by:
+-- Created:     30.11.2001
+-- RCS-ID:      $Id$
+-- Copyright:   (c) 2001 Gilles Depeyrot
+-- Licence:     wxWindows licence
+-----------------------------------------------------------------------------
+--
+-- This AppleScript automatically recurses through the selected folder looking for
+-- and importing CodeWarrior xml files to projects
+-- To use this script, simply open it with the 'Script Editor' and run it.
+--
+
+--
+-- Suffix used to recognize CodeWarrior xml files
+--
+property gXmlSuffix : "M5.xml"
+
+--
+-- Project and build success count
+--
+set theXmlCount to 0
+set theXmlSuccessCount to 0
+
+--
+-- Ask the user to select the wxWindows samples folder
+--
+set theFolder to choose folder with prompt "Select the wxWindows folder"
+
+ImportProjects(theFolder)
+
+tell me to display dialog "Imported " & theXmlSuccessCount & " xml files out of " & theXmlCount buttons {"OK"}
+
+--
+-- ImportProjects
+--
+on ImportProjects(inFolder)
+	global theXmlCount, theXmlSuccessCount
+	
+	try
+		tell application "Finder" to set theXml to ((the first file of inFolder whose name ends with gXmlSuffix) as string)
+	on error
+		set theXml to ""
+	end try
+	
+	if theXml is not "" then
+		set theXmlCount to theXmlCount + 1
+		
+		-- save the current text delimiters
+		set theDelimiters to my text item delimiters
+		
+		-- replace the ".xml" extension with ".mcp"
+		set my text item delimiters to "."
+		set theList to (every text item of theXml)
+		set theList to (items 1 thru -2 of theList)
+		set theImport to (theList as string) & ".mcp"
+		
+		-- restore the text delimiters
+		set my text item delimiters to theDelimiters
+		
+		tell application "CodeWarrior IDE 4.0.4"
+			--
+			-- Import the selected xml file
+			--
+			try
+				make new project document as theImport with data theXml
+				set theXmlSuccessCount to theXmlSuccessCount + 1
+				--
+				-- Close the project
+				--
+				Close Project
+			on error number errnum
+				tell me to display dialog "Error " & errnum & " importing " & theXml & " to " & theImport
+			end try
+		end tell
+	end if
+	
+	tell application "Finder" to set theSubFolders to every folder of inFolder
+	repeat with theFolder in theSubFolders
+		ImportProjects(theFolder)
+	end repeat
+	
+end ImportProjects