[Pkg] Sake : Sake-Bob-kph.15.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Tue Mar 3 14:12:18 UTC 2009


A new version of Sake-Bob was added to project Sake :
http://www.squeaksource.com/Sake/Sake-Bob-kph.15.mcz

==================== Summary ====================

Name: Sake-Bob-kph.15
Author: kph
Time: 3 March 2009, 2:12:11 pm
UUID: 4ab4c5d0-07fd-11de-bb3d-000a95edb42a
Ancestors: Sake-Bob-kph.14

.

=============== Diff against Sake-Bob-kph.14 ===============

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>plistBase (in category 'as yet unclassified') -----
+ plistBase
+ 		
+ 	^ Dictionary new
+ 		at: 'CFBundleName'				put: name;
+ 		at: 'CFBundleShortVersionString' put: name;
+ 		at: 'CFBundleIconFile' 			put: self configIcns asFile fileName;
+ 		at: 'CFBundleExecutable' 		put: self configExecutable ;
+ 		yourself!

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>configCopyright (in category 'as yet unclassified') -----
+ configCopyright
+ 
+ 	^ 
+ 
+ 'Distribution based on Sophie
+ 
+ http://www.sophieproject.org/'!

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>configIni (in category 'as yet unclassified') -----
+ configIni
+ 
+ ^ '[Global]
+ DeferUpdate=1
+ ShowConsole=0
+ DynamicConsole=0
+ ReduceCPUUsage=1
+ ReduceCPUInBackground=0
+ 3ButtonMouse=0
+ 1ButtonMouse=0
+ UseDirectSound=1
+ PriorityBoost=1
+ B3DXUsesOpenGL=0
+ CaseSensitiveFileMode=0
+ ImageFile="Contents\Resources\' , self imageName, '.image"'!

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>expand:to:cachingIn: (in category 'as yet unclassified') -----
+ expand: aZipFile to: destDir cachingIn: cacheDir
+ 		
+ 	"
+ 	(self obtainImage: 'ftp://ftp.squeak.org/3.10/Squeak3.10.2-*-basic.zip') run  
+ 	"
+ 	| localZipFile |
+ 	
+ 	aZipFile executive isRemote 
+ 		ifTrue: [ 
+ 		
+ 			localZipFile := cacheDir  / aZipFile fileName.
+ 				
+ 			localZipFile exists ifFalse: [ 
+ 				self log info downloading: aZipFile.
+ 				localZipFile parent mkpath add: aZipFile ].	
+ 		]
+ 		ifFalse: [ localZipFile := aZipFile ].
+ 		
+ 	self log info bob expanding: localZipFile to: destDir.	
+ 
+ 	self exec: 'unzip ', localZipFile, ' -d ', destDir full mkpath.
+ 	
+ 	^ localZipFile
+ 
+ 	"	
+ 	localZipFile zip readArchive extractAllTo: destDir mkpath asFileDirectory.
+ 	"
+ 	!

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>plistMergeIntoFile: (in category 'as yet unclassified') -----
+ plistMergeIntoFile: originalPlistFile
+ 
+ 	| templatePlist file |
+ 	
+ 	file := originalPlistFile asFile xml.
+ 	templatePlist := file contents.
+ 	
+ 	((templatePlist elementAt: 'plist') elementAt: 'dict') elements pairsDo: [ :keyElement :valueElement |  
+ 		
+ 		self plist at: (keyElement contentString) ifPresent:[ :newValue | (valueElement contents at: 1) string: newValue ]	
+ 	].
+ 	
+ 	file delete contents: templatePlist.!

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>setName: (in category 'as yet unclassified') -----
+ setName: aName
+ 
+ 	name := aName!

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>configIcns (in category 'as yet unclassified') -----
+ configIcns
+ 
+ 	^ (info oneClickIcns ifNil: [ '/bob/misc/SqueakImage.icns' ]) !

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>configSources (in category 'as yet unclassified') -----
+ configSources
+ 
+ 	^ '/bob/vm/SqueakV39.sources'
+ 	
+ 	" '/bob/vm/SqueakV3.sources' "
+ 	!

Item was changed:
+ BobUtilities subclass: #BobBuild
+ 	instanceVariableNames: ''
- SakeTask subclass: #BobBuild
- 	instanceVariableNames: 'script zipFile latest'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'Sake-Bob'!
  
  !BobBuild commentStamp: 'kph 2/18/2009 05:49' prior: 0!
  [ self taskBuildAll run ] fork.!

Item was changed:
  ----- Method: BobBuildImage>>actionPublishOneClick (in category 'as yet unclassified') -----
  actionPublishOneClick
  
  	"if our source zip has an info file accompanying read it"
  	| sourceInfo |
  	sourceInfo := Compiler evaluate: (zipFile copy ext: 'info') contents.
  	
  	info timeStart: sourceInfo timeStart.
  	info timeDuration: sourceInfo timeDuration.
  	info timeComplete: sourceInfo timeComplete.
  	info timeOneClickGenerated: DateAndTime now.
  	
+ 	self expand: zipFile to: (self workingDirOneClickIn mkpath clean). 
- 	self expandZipFileTo: (self workingDirOneClickIn mkpath clean). 
  
  	self startImage: (self workingDirOneClickIn all fileMatching: '*.image').
  			
  	self packageOneClick.
  				
  	 
   !

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>name (in category 'as yet unclassified') -----
+ name
+ 	^ name!

Item was changed:
  ----- Method: BobBuildImage>>isUploadRequested (in category 'as yet unclassified') -----
  isUploadRequested
  	
+ 	info upload isNil ifTrue: [ ^ false ].
+ 	
+ 	info uploadLatest = true ifTrue: [ ^ true ].
+ 	
+ 	(self class configUploadReleaseOnly and: [ self info linkRelease ~= true ]) ifTrue: [ ^ false ].
+ 	
+ 	^ true!
- 	^ (info upload isNil or: [ self class configUploadReleaseOnly and: [ self info linkRelease ~= true ]]) not!

Item was added:
+ ----- Method: BobBuildParallelReleases class>>taskBuild (in category 'as yet unclassified') -----
+ taskBuild
+ 
+ 	^ (self selectorsPrefixed: #build) collect: [ :sel | self taskBuild: sel ]
+ 	!

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>imageName (in category 'as yet unclassified') -----
+ imageName 
+ 
+ 	^ self bundleName asLowercase!

Item was added:
+ ----- Method: BobUtilities>>expand:to: (in category 'as yet unclassified') -----
+ expand: aZipFile to: destDir
+ 		
+ 	"
+ 	(self obtainImage: 'ftp://ftp.squeak.org/3.10/Squeak3.10.2-*-basic.zip') run  
+ 	"
+ 	| localZipFile |
+ 	
+ 	aZipFile executive isRemote 
+ 		ifTrue: [ 
+ 		
+ 			localZipFile := self class configImagesDir  / aZipFile fileName.
+ 		
+ 			"if it is not in the local downloaded images cache, look in our output tree"	
+ 			localZipFile exists ifFalse: [ 
+ 				(self outputDir parent all filesMatching: aZipFile fileName) firstOrNil
+ 				 ifNotNilDo: [ :found |
+ 					self log info found: found.
+ 					localZipFile := found
+ 				].
+ 			].
+ 		
+ 			localZipFile exists ifFalse: [ 
+ 				self log info downloading: zipFile.
+ 				localZipFile parent mkpath add: zipFile ].	
+ 		]
+ 		ifFalse: [ localZipFile := aZipFile ].
+ 		
+ 	self log info bob expanding: localZipFile to: destDir.	
+ 
+ 	self exec: 'unzip ', localZipFile, ' -d ', destDir full mkpath.
+ 	
+ 	^ localZipFile
+ 
+ 	"	
+ 	localZipFile zip readArchive extractAllTo: destDir mkpath asFileDirectory.
+ 	"
+ 	!

Item was added:
+ ----- Method: BobBuildImage class>>taskBuild:extensionOneClick: (in category 'as yet unclassified') -----
+ taskBuild: metaSelector extensionOneClick: aTask
+ 	self halt.
+ 	^ (BobOneClickPackageGenerator taskMakeOneClickfor: aTask) 	
+ 		!

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>configSh (in category 'as yet unclassified') -----
+ configSh
+ 
+ ^ '#!!/bin/sh
+ APP=`dirname $0`
+ EXE="$APP/Contents/Linux686"
+ RES="$APP/Contents/Resources"
+ 
+ exec "$EXE/', self executableName ,'" -plugins "$EXE" \
+ 	-encoding latin1 \
+ 	-vm-display-X11 -swapbtn  \
+ 	"$RES/' , self imageName  , '.image"'!

Item was added:
+ ----- Method: BobOneClickPackageGenerator class>>for: (in category 'as yet unclassified') -----
+ for: aBuildTask
+ 
+ 	self new 
+ 		setInfo: aBuildTask info;
+ 		dependsOn: { aBuildTask }!

Item was changed:
  SystemOrganization addCategory: #'Sake-Bob'!
+ SystemOrganization addCategory: #'Sake-Bob-OneClickPackage'!

Item was added:
+ ----- Method: BobOneClickPackageGenerator class>>named: (in category 'as yet unclassified') -----
+ named: aName
+ 
+ 	^ self new setName: aName; initialize!

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>configTemplate (in category 'as yet unclassified') -----
+ configTemplate
+ 
+ 	^  'file:///bob/images/Seaside-2.8.3.app.zip' asFile!

Item was changed:
  ----- Method: BobBuildImage>>actionBuild (in category 'as yet unclassified') -----
  actionBuild
  
  	self stepAction.
+ 	self expand: zipFile to: (self workingDir mkpath clean). 
- 	self expandZipFileTo: (self workingDir mkpath clean). 
  
  	self startImage: (self workingDir all fileMatching: '*.image').
  	self linkPackageCache.
  	
  	self theScript scriptFileWrite.
  			 			
+ 	self launchVm: self class configVm image: self startImage with: self scriptFile.
- 	self launchVm: self configVm image: self startImage with: self scriptFile.
  			
  	self isSuccessfulBuild ifFalse: [ ^ self ].
  	 
  	info timeComplete: DateAndTime now. 
  	info timeDuration: ((info timeComplete - info timeStart) roundTo: 1 second).
  			
  	self publish.
  	 
  	self package.
  		
  	self tidy.
  	self publishLinks.
  			
  	self uploadImmediate.
  	!

Item was changed:
  ----- Method: BobBuildImage>>scriptSaveImageAndQuit: (in category 'as yet unclassified') -----
  scriptSaveImageAndQuit: requestQuit
  
  	| s |
  	s := String new writeStream.
  	
  	s << ' | image resuming |'  ; cr.
  	s << '"self halt."' ; cr.
  	s << 'WorldState addDeferredUIMessage: [ (Delay forSeconds: 1) wait. '; cr.
  	s << 'image := SmalltalkImage current.'; cr.
  	s << 'resuming := image saveAs: '''<< self stampedName << '.image''.'; cr.
  	
  	requestQuit ifTrue: [
  	
  		s <<	'resuming ifFalse: [ image snapshot: false andQuit: true ].' ; cr
  	
  	].
  
+ 	s << '].'.
- 	s << '].'
  
  	self nextScriptPut: s contents!

Item was added:
+ ----- Method: BobOneClickPackageGenerator class>>taskMakeOneClickfor:build: (in category 'as yet unclassified') -----
+ taskMakeOneClickfor: aBuildTask build: aBuildSelector
+ 	
+ 	^ self define: [ :task |
+ 		 
+ 		task setInfo: (aBuildTask  new infoFor: aBuildSelector).
+ 
+ 		task dependsOn: { aBuildTask }.
+ 		
+ 		task if: [ task info oneClick = true  ].
+ 			
+ 		task action: [
+ 				
+ 				task packageOneClick.	
+ 		
+ 		].
+ 	].
+ 
+ "
+ (BobBuildLPF taskBuild: #build310) withExtensions 
+ (BobBuildImage taskBuildAll what)
+ "!

Item was changed:
  ----- Method: BobBuildImage>>packageOneClick (in category 'as yet unclassified') -----
  packageOneClick
  	
  	| appZip appDir resources plist bundleName imageName template filename |
  	 
  	info oneClick = true ifFalse: [ ^ self ].
  	
  	template := info oneClickTemplate ifNil: [ self configOneClickTemplate ].
  		
  	"use the match string given to find the template"	
  	appZip := self resolveFile: template ifNone: [ :msg | self error: msg ].
  	
  	"download to images cache, and decompress to the output area"
  	self expand: appZip to: self workingDirOneClickOut mkpath clean.
  
  	"the result should have a .app dir, find it"
   	appDir := self workingDirOneClickOut directories detect: [ :ea |  ea asString endsWith: '.app' ] ifNone: [ self error: '*.app not found' ].
  
  	"get our plist contribution"
+ 	plist := self configPlist.
- 	plist := self configOneClickPlist.
  
  	bundleName := plist at: 'CFBundleName'.
  	imageName := bundleName asLowercase.
  	plist at: 'SqueakImageName' put: (imageName, '.image').
  
  	"rename the .app dir to the desired name"
  	appDir beRenaming fileName: (bundleName , '.app').
  
  	"top level directory"
  	(appDir filesMatching: #('*.exe' '*.ini' '*.sh')) do: [ :ea | ea rename base: bundleName ].
  	(appDir / bundleName + '.ini' ) delete contents: ((self configOneClickIni: imageName) copyReplaceAll: String cr with: String crlf).
  	(appDir / bundleName + '.sh' ) delete contents: (self configOneClickSh: imageName).
  	(appDir / 'COPYRIGHT') delete contents: (info oneClickCopyrightStatement ifNil: [ self configOneClickCopyrightStatement ] ).
  	
  	"Contents Directory"
  	appDir / 'Contents' / 'PkgInfo' contents: ((plist at: 'CFBundlePackageType') , (plist at: 'CFBundleSignature')).
  	self oneClickUpdatePlist: (appDir / 'Contents' / 'Info.plist')  fromDictionary: plist.
  	
  	"Resources Directory"	
  	resources := (appDir / 'Contents' / 'Resources') all delete mkpath.
  
  	resources addTree: self imageDir entries.
  	(resources filesMatching: #('*.image' '*.changes')) do: [ :ea | ea rename base: imageName ].
  	resources add: self configOneClickIcns asFile.
  	resources add: (info oneClickSources ifNil: [ self configOneClickSources ]) asFile.
  	
  	self halt.
  	filename := appDir fileName.
  	self packageDirectory: filename intoZip: (self stamp,'_', filename) from: appDir parent.
  
  	 !

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>configPlist (in category 'as yet unclassified') -----
+ configPlist
+ 	"we take the plist from the template and substitute these values
+ 	note: only string values are supported at this time"
+ 	
+ 	^ self plistBase
+ 		at: 'CFBundlePackageType'		put: 'APPL';
+ 		at: 'CFBundleSignature'			put: 'FAST';
+ 		at: 'CFBundleGetInfoString'	 	put: 'http://www.squeak.org';
+ 		at: 'CFBundleIdentifier'			put: 'org.squeak';
+ 		at: 'CFBundleVersion'			put: '3.8.18b1U';
+ 		at: 'SqueakEncodingType'		put: 'UTF-8';
+ 		yourself
+ !

Item was added:
+ SakeTask subclass: #BobOneClickPackageGenerator
+ 	instanceVariableNames: 'plist name'
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'Sake-Bob'!

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>packageOneClick (in category 'as yet unclassified') -----
+ packageOneClick
+ 	
+ 	| appZip appDir resources template filename |
+ 	 	
+ 	template := info oneClickTemplate ifNil: [ self configTemplate ].
+ 		
+ 	"use the match string given to find the template"	
+ 	appZip := template asFile resolveMatchOne ifNil: [ self error: 'Template not found: ', template ].
+ 	
+ 	"download to images cache, and decompress to the output area"
+ 	self expand: appZip to: self workingDirOneClickOut mkpath clean.
+ 
+ 	"the result should have a .app dir, find it"
+  	appDir := self workingDirOneClickOut directories detect: [ :ea |  ea asString endsWith: '.app' ] ifNone: [ self error: '*.app not found' ].
+ 
+ 	"rename the .app dir to the desired name"
+ 	appDir beRenaming fileName: (self bundleName , '.app').
+ 
+ 	"top level directory"
+ 	(appDir filesMatching: #('*.exe' '*.ini' '*.sh')) do: [ :ea | ea rename base: self bundleName ].
+ 	(appDir / self bundleName + '.ini' ) delete contents: ((self configOneClickIni: self imageName) copyReplaceAll: String cr with: String crlf).
+ 	(appDir / self bundleName + '.sh' ) delete contents: (self configOneClickSh: self imageName).
+ 	(appDir / 'COPYRIGHT') delete contents: (info oneClickCopyrightStatement ifNil: [ self configOneClickCopyrightStatement ] ).
+ 	
+ 	"Contents Directory"
+ 	appDir / 'Contents' / 'PkgInfo' contents: ((plist at: 'CFBundlePackageType') , (plist at: 'CFBundleSignature')).
+ 	self oneClickUpdatePlist: (appDir / 'Contents' / 'Info.plist')  fromDictionary: plist.
+ 	
+ 	"Resources Directory"	
+ 	resources := (appDir / 'Contents' / 'Resources') all delete mkpath.
+ 
+ 	resources addTree: self imageDir entries.
+ 	(resources filesMatching: #('*.image' '*.changes')) do: [ :ea | ea rename base: self imageName ].
+ 	resources add: self configOneClickIcns asFile.
+ 	resources add: (info oneClickSources ifNil: [ self configOneClickSources ]) asFile.
+ 	
+ 	self halt.
+ 	filename := appDir fileName.
+ 	self packageDirectory: filename intoZip: (self stamp,'_', filename) from: appDir parent.
+ 
+ 	 !

Item was changed:
  ----- Method: BobBuild class>>taskUpload: (in category 'as yet unclassified') -----
  taskUpload: metaSelector
  	"the task of uploading is defined as a top level task, because it is more generic than image building, and may be applied to any result."
  	
  	| newInfo lock ul dl yes |
  	^ self define: [ :task |
+ 		metaSelector = #build310 ifTrue: [ self halt ].
- 			
  		(task infoFor: metaSelector) ifNil: [ ^ self noop ].
  		task dependsOn: #().
  		
  		newInfo := task info.
  		
  		"obtain and use the latest meta-data from the most recent build activity"	
  		task info: task infoFileReadLatest.
  		
  		"some fields in the metadata we prefer new values over the older"
  		
  		task info upload: newInfo upload.
  		task info download: newInfo download.
  		task info linkRelease: newInfo linkRelease.
  		task info comment: newInfo comment.
+ 		task info uploadLatest: newInfo uploadLatest.
  	
  		task if: [
  			lock := ul := dl := nil. 
  			yes := task name notNil 
  					and: [ (ul := task isUploadRequested) 
  					and: [  dl := task isUploadedFileAvailableForDownload.
  						    dl ifTrue: [ task uploadDirLock delete ].
  						    dl not and: [ (lock := task uploadDirLock exists) not ] ] ].
  					
  			task name ifNotNil:[
  					self log info name: task name uploadRequested: ul done: dl inProgress: lock.
  			].
  		
  			"if we decide that we shall upload, we lock the upload dir to inform others"
  			yes ifTrue: [ task uploadDirLock touch ].
  			yes.	
  		].
  		
  		task action: [ 
  
  			self log info UPLOADING: task publishDir.
   
  			task infoFilePublishAlongside: task publishDir.
  			task linkRelease.
  			
+ 			task info oneClick = true ifTrue: [ task packageOneClick ].
- 			task oneClick = true ifTrue: [ task packageOneClick ].
  			
  			task perform: ('uploadUsing', (task info upload upTo: $:) capitalized) asSymbol. 
  		
  			task isUploadedFileAvailableForDownload ifTrue: [ task uploadDirLock delete ].
  		]
  	] 
  
  !

Item was added:
+ SakeTask subclass: #BobUtilities
+ 	instanceVariableNames: 'script zipFile latest'
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'Sake-Bob'!

Item was changed:
  ----- Method: BobBuild>>infoFor: (in category 'as yet unclassified') -----
  infoFor: selector
  	 
  	selector ifNil: [ ^ nil ].
  	
  	self info name: self class label.
  	self info build: selector.
  	self info label: self class label.
  	self when: self class configWhen.
  	self info linkRelease: self class configLinkRelease.
  	self description ifNotEmpty: [ self info description: self description ].
  	info action: #actionBuild.
  
  	self perform: selector.
  	
+ ^ info!
- !

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>bundleName (in category 'as yet unclassified') -----
+ bundleName 
+ 
+ 	^ self plist at: 'CFBundleName'.!

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>plist (in category 'as yet unclassified') -----
+ plist
+ 
+ 	plist ifNil: [ 
+ 		plist := self configPlist.
+ 		self info keysAndValuesDo: 
+ 					[ :k :v | k first isUppercase ifTrue: [ plist at: k put: v ] ].
+ 				
+ 		plist at: 'SqueakImageName' put: (self imageName, '.image'). 	
+ 	].
+ 
+ 	^ plist!

Item was added:
+ ----- Method: BobOneClickPackageGenerator>>expand:to: (in category 'as yet unclassified') -----
+ expand: aZipFile to: destDir
+ 		
+ 	"
+ 	(self obtainImage: 'ftp://ftp.squeak.org/3.10/Squeak3.10.2-*-basic.zip') run  
+ 	"
+ 	| localZipFile |
+ 	
+ 	aZipFile executive isRemote 
+ 		ifTrue: [ 
+ 		
+ 			localZipFile := self class configTemplatesDir  / aZipFile fileName.
+ 				
+ 			localZipFile exists ifFalse: [ 
+ 				self log info downloading: aZipFile.
+ 				localZipFile parent mkpath add: aZipFile ].	
+ 		]
+ 		ifFalse: [ localZipFile := aZipFile ].
+ 		
+ 	self log info bob expanding: localZipFile to: destDir.	
+ 
+ 	self exec: 'unzip ', localZipFile, ' -d ', destDir full mkpath.
+ 	
+ 	^ localZipFile
+ 
+ 	"	
+ 	localZipFile zip readArchive extractAllTo: destDir mkpath asFileDirectory.
+ 	"
+ 	!

Item was changed:
  ----- Method: BobBuild>>expand:to: (in category 'zip file') -----
  expand: aZipFile to: destDir
+ 	
+ 	"if the zip file is remote, check it wasnt one we generated in our output tree"
+ 
- 		
- 	"
- 	(self obtainImage: 'ftp://ftp.squeak.org/3.10/Squeak3.10.2-*-basic.zip') run  
- 	"
  	| localZipFile |
  	
+ 	localZipFile := nil.
+ 	
+ 	aZipFile executive isRemote ifTrue: [
+ 		 
+ 		(self outputDir parent all filesMatching: aZipFile fileName) firstOrNil
- 	aZipFile executive isRemote 
- 		ifTrue: [ 
- 		
- 			localZipFile := self class configImagesDir  / aZipFile fileName.
- 		
- 			"if it is not in the local downloaded images cache, look in our output tree"	
- 			localZipFile exists ifFalse: [ 
- 				(self outputDir parent all filesMatching: aZipFile fileName) firstOrNil
  				 ifNotNilDo: [ :found |
  					self log info found: found.
+ 					localZipFile := found.
+ 				]
+ 	].
+ 
+ 	"default is not to overwrite if the file exists"
+ 	localZipFile := (self class configImagesDir add: (localZipFile ifNil: [ aZipFile ])).
+ 	
- 					localZipFile := found
- 				].
- 			].
- 		
- 			localZipFile exists ifFalse: [ 
- 				self log info downloading: zipFile.
- 				localZipFile parent mkpath add: zipFile ].	
- 		]
- 		ifFalse: [ localZipFile := aZipFile ].
- 		
  	self log info bob expanding: localZipFile to: destDir.	
  
  	self exec: 'unzip ', localZipFile, ' -d ', destDir full mkpath.
  	
  	^ localZipFile
  
- 	"	
- 	localZipFile zip readArchive extractAllTo: destDir mkpath asFileDirectory.
- 	"
  	!

Item was removed:
- ----- Method: BobBuildImage>>configOneClickIni: (in category 'as yet unclassified') -----
- configOneClickIni: imageName
- 	
- ^ '[Global]
- DeferUpdate=1
- ShowConsole=0
- DynamicConsole=0
- ReduceCPUUsage=1
- ReduceCPUInBackground=0
- 3ButtonMouse=0
- 1ButtonMouse=0
- UseDirectSound=1
- PriorityBoost=1
- B3DXUsesOpenGL=0
- CaseSensitiveFileMode=0
- ImageFile="Contents\Resources\' , imageName, '.image"'!

Item was removed:
- ----- Method: BobBuildImage>>configOneClickSh: (in category 'as yet unclassified') -----
- configOneClickSh: imageName
- 	
- ^ '#!!/bin/sh
- APP=`dirname $0`
- EXE="$APP/Contents/Linux686"
- RES="$APP/Contents/Resources"
- 
- exec "$EXE/squeak" -plugins "$EXE" \
- 	-encoding latin1 \
- 	-vm-display-X11 -swapbtn  \
- 	"$RES/' , imageName  , '.image"'!

Item was removed:
- ----- Method: BobBuildImage>>oneClickUpdatePlist:fromDictionary: (in category 'as yet unclassified') -----
- oneClickUpdatePlist: originalPlistFile fromDictionary: dict
- 	
- 	| plist file |
- 	
- 	file := originalPlistFile asFile xml.
- 	plist := file contents.
- 	
- 	((plist elementAt: 'plist') elementAt: 'dict') elements pairsDo: [ :keyElement :valueElement |  
- 		
- 		dict at: (keyElement contentString) ifPresent:[ :newValue | (valueElement contents at: 1) string: newValue ]	
- 	].
- 	
- 	file delete contents: plist.!

Item was removed:
- ----- Method: BobBuildImage>>configOneClickPlist (in category 'as yet unclassified') -----
- configOneClickPlist
- 	"we take the plist from the template and substitute these values
- 	note: only string values are supported at this time"
- 	
- 	^ self oneClickPlistBase
- 		at: 'CFBundleName'				put: (info oneClickName ifNil: [ info name ]);
- 		at: 'CFBundleShortVersionString' put: (info oneClickName ifNil: [ info name ]);
- 		at: 'CFBundlePackageType'		put: 'APPL';
- 		at: 'CFBundleSignature'			put: 'FAST';
- 		at: 'CFBundleExecutable' 		put: 'squeak';
- 		at: 'CFBundleGetInfoString'	 	put: 'http://www.squeak.org';
- 		at: 'CFBundleIdentifier'			put: 'org.squeak';
- 		at: 'CFBundleVersion'			put: '3.8.18b1U';
- 		at: 'SqueakEncodingType'		put: 'UTF-8';
- 		yourself
- !

Item was removed:
- ----- Method: BobBuildImage>>configOneClickCopyrightStatement (in category 'as yet unclassified') -----
- configOneClickCopyrightStatement
- 
- 	^ 
- 
- 'Distribution based on Sophie
- 
- http://www.sophieproject.org/'!

Item was removed:
- ----- Method: BobBuildImage>>configOneClickIcns (in category 'as yet unclassified') -----
- configOneClickIcns
- 
- 	^ (info oneClickIcns ifNil: [ '/bob/misc/SqueakImage.icns' ]) !

Item was removed:
- ----- Method: BobBuildImage>>configOneClickTemplate (in category 'as yet unclassified') -----
- configOneClickTemplate
- 
- 	^  'file:///bob/images/Seaside-2.8.3.app.zip' !

Item was removed:
- ----- Method: BobBuildImage>>oneClickPlistBase (in category 'as yet unclassified') -----
- oneClickPlistBase
- 		
- 	^ Dictionary new
- 		at: 'CFBundleIconFile' put: self configOneClickIcns asFile fileName;
- 		yourself!

Item was removed:
- ----- Method: BobBuildImage>>configOneClickSources (in category 'as yet unclassified') -----
- configOneClickSources
- 
- 	^ '/bob/vm/SqueakV39.sources'
- 	
- 	" '/bob/vm/SqueakV3.sources' "
- 	!

Item was removed:
- ----- Method: BobBuild>>expandZipFileTo: (in category 'zip file') -----
- expandZipFileTo: destDir
- 	
- 	^ self expand: zipFile to: destDir!



More information about the Packages mailing list