--- a/STXInstaller.st Fri Oct 26 18:51:56 2001 +0200
+++ b/STXInstaller.st Fri Oct 26 19:53:42 2001 +0200
@@ -237,11 +237,13 @@
"/ name destination subDir required mode
( 'projects/smalltalk/include' #lib nil true '644' )
( 'projects/smalltalk/*.rc' #lib nil true '644' )
+ ( 'projects/smalltalk/*.wsp' #lib nil true '644' )
( 'projects/smalltalk/banner*.xpm' #lib nil true '644' )
( 'projects/smalltalk/patches' #lib nil true '644' )
( 'COPYRIGHT' nil nil true '644' )
- ( 'doc/online/german/LICENCE_STX.html' nil 'doc/online/german' true '644' )
- ( 'doc/online/english/LICENCE_STX.html' nil 'doc/online/english' true '644' )
+ ( 'RELEASE' nil nil true '644' )
+ ( 'doc/online/german/LICENCE_STX.html' nil 'doc/online/german' true '644' )
+ ( 'doc/online/english/LICENCE_STX.html' nil 'doc/online/english' true '644' )
( 'doc/online/german/LICENCE_DEMO_STX.html' nil 'doc/online/german' true '644' )
( 'doc/online/english/LICENCE_DEMO_STX.html' nil 'doc/online/english' true '644' )
).
@@ -372,6 +374,20 @@
!STXInstaller methodsFor:'installing'!
+add:specEntry toFileSpec:fileSpec
+ (specEntry first startsWith:'./') ifTrue:[
+ specEntry at:1 put:(specEntry first copyFrom:3).
+ ].
+ (specEntry first startsWith:'.\') ifTrue:[
+ specEntry at:1 put:(specEntry first copyFrom:3).
+ ].
+ (fileSpec includes:specEntry) ifFalse:[
+ fileSpec add:specEntry
+ ] ifTrue:[
+ "/ self halt
+ ]
+!
+
addFilesToSpec:fileSpec relativeTo:rel fromINSTALLSpec:f
|s entry t cond dst|
@@ -389,18 +405,49 @@
or:[installGoodyFiles]) ifTrue:[
dst := t at:2.
(dst startsWith:'packages/stx/') ifTrue:[
- fileSpec add:(Array
+ self add:(Array
with:(rel asFilename constructString:(t at:1))
with:#pkg
with:('stx' asFilename constructString:(dst copyFrom:'packages/stx/' size+1))
- with:true).
+ with:true)
+ toFileSpec:fileSpec.
] ifFalse:[
- (dst = 'bin') ifTrue:[
- fileSpec add:(Array
- with:(rel asFilename constructString:(t at:1))
- with:#bin
- with:nil
- with:true).
+ ((dst = 'bin') or:[dst startsWith:'bin/']) ifTrue:[
+ (dst = 'bin') ifTrue:[
+ self add:(Array
+ with:(rel asFilename constructString:(t at:1))
+ with:#bin
+ with:nil
+ with:true)
+ toFileSpec:fileSpec.
+ ] ifFalse:[
+ self add:(Array
+ with:(rel asFilename constructString:(t at:1))
+ with:#bin
+ with:(dst copyFrom:'bin/' size+1)
+ with:true)
+ toFileSpec:fileSpec.
+ ].
+ ] ifFalse:[
+ ((dst = 'lib') or:[dst startsWith:'lib/']) ifTrue:[
+ (dst = 'lib') ifTrue:[
+ self add:(Array
+ with:(rel asFilename constructString:(t at:1))
+ with:#lib
+ with:nil
+ with:true)
+ toFileSpec:fileSpec.
+ ] ifFalse:[
+ self add:(Array
+ with:(rel asFilename constructString:(t at:1))
+ with:#lib
+ with:(dst copyFrom:'lib/' size+1)
+ with:true)
+ toFileSpec:fileSpec.
+ ]
+ ] ifFalse:[
+ self halt:'unhandled destination: ' , dst.
+ ]
]
]
]