diff -r 85114c70d811 -r 6196930f9a1d STXInstaller.st --- 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. + ] ] ] ]