[Pkg] Rio: File-Base-kph.19.mcz
squeak-dev-noreply at lists.squeakfoundation.org
squeak-dev-noreply at lists.squeakfoundation.org
Mon Mar 2 20:35:30 UTC 2009
A new version of File-Base was added to project Rio:
http://www.squeaksource.com/Rio/File-Base-kph.19.mcz
==================== Summary ====================
Name: File-Base-kph.19
Author: kph
Time: 2 March 2009, 8:35:23 pm
UUID: a79dbc77-0769-11de-a0af-000a95edb42a
Ancestors: File-Base-kph.18
all test pass on unix
=============== Diff against File-Base-kph.18 ===============
Item was changed:
----- Method: File>>renameTo: (in category 'public file') -----
renameTo: rioable
+ ^ executive rename: self to: (rioable as: File)!
- ^ executive rename: self to: rioable asFile!
Item was changed:
FileRemoteExecutive subclass: #FileFtpExecutive
+ instanceVariableNames: 'isKeepAlive rw'
- instanceVariableNames: 'home isKeepAlive rw'
classVariableNames: ''
poolDictionaries: ''
category: 'File-Base'!
Item was changed:
----- Method: FileArchiveExecutive>>root (in category 'as yet unclassified') -----
root
+ ^ self class pathDelimiter
- ^ self pathDelimiter
!
Item was changed:
----- Method: FileFtpExecutive>>copyLocalFile:toRemoteFile: (in category 'external ftp') -----
copyLocalFile: aFile toRemoteFile: bFile
+ File
+ ospIfWin:[ :os | aFile copyTo: bFile ]
+ ifUnix: [ :os | os waitForCommand: 'ftp -u "', url asString , bFile , '" "' , aFile asVmPathName ,'"' ]
+ ifNone: [ aFile copyTo: bFile ]
- self class OSProcessOrNil ifNil: [ ^ aFile copyTo: bFile ].
-
- self class OSProcessOrNil waitForCommand:
+ !
- 'ftp -u "', url asString , bFile , '" "' , aFile asVmPathName ,'"' !
Item was changed:
----- Method: File>>renamingWith: (in category 'private') -----
renamingWith: aBlock
+ | old |
+ self isRenaming
+ ifTrue: [ old := self copy.
+ aBlock value.
+ self parent mkpath.
+ old renameTo: self ]
+ ifFalse: [ aBlock value ].
+
+
- ^ self isRenaming
- ifTrue: [ self copy renameTo: aBlock value ]
- ifFalse: [ aBlock value ]
!
Item was changed:
----- Method: FileFtpExecutive>>ftpOpenClient (in category 'ftp client') -----
ftpOpenClient
| loginSuccessful what newClient |
newClient := self FTPClient openOnHostNamed: self host.
loginSuccessful := false.
[loginSuccessful]
whileFalse: [
[loginSuccessful := true.
newClient loginUser: self user password: self password]
on: LoginFailedException
do: [:ex |
what := UIManager default
chooseFrom: #('enter password' 'give up')
title: 'Would you like to try another password?'.
what = 1 ifFalse: [self error: 'Login failed.'. ^nil]
ifTrue: [ self password: nil ].
loginSuccessful := false]].
+ self setHome: newClient pwd.
- home := newClient pwd.
^ newClient!
Item was changed:
----- Method: File>>full: (in category 'public path') -----
full: aPathOrFile
^ self renamingWith: [
+ value := executive importValue: (aPathOrFile asFile linearRelativeTo: executive homeDirectory) asString.
- value := executive importValue: (aPathOrFile asFile linearRelativeTo: executive defaultDirectory) asString.
]
!
Item was changed:
----- Method: FileFtpExecutive>>copyRemoteFile:toLocalFile: (in category 'external ftp') -----
copyRemoteFile: aFile toLocalFile: bFile
+ File
+ ospIfWin:[ :os | aFile copyTo: bFile ]
+ ifUnix: [ :os | os waitForCommand: 'ftp -o "', bFile asVmPathName, '" "' , url asString , aFile, '"' ]
+ ifNone: [ aFile copyTo: bFile ]
- self class OSProcessOrNil ifNil: [ ^ aFile copyTo: bFile ].
-
- self class OSProcessOrNil waitForCommand:
+ !
- 'ftp -o "', bFile asVmPathName, '" "' , url asString , aFile, '"'!
Item was added:
+ ----- Method: File class>>ospIfWin:ifUnix:ifNone: (in category 'documentation') -----
+ ospIfWin: winBlock ifUnix: unixBlock ifNone: noneBlock
+ | os |
+
+ os := (Smalltalk at: #OSProcess ifAbsent: [ ^ noneBlock value ]) thisOSProcess.
+
+ os pid ifNil: [ ^ noneBlock value ].
+
+ os class = WindowsProcess ifTrue: [ ^ winBlock value: os ].
+ os class = UnixProcess ifTrue: [ ^ unixBlock value: os ].!
Item was added:
+ ----- Method: File class>>ifWin:ifUnix:ifNone: (in category 'documentation') -----
+ ifWin: winBlock ifUnix: unixBlock ifNone: noneBlock
+ | os |
+
+ os := (Smalltalk at: #OSProcess ifAbsent: [ ^ noneBlock value ]) thisOSProcess.
+
+ os pid ifNil: [ ^ noneBlock value ].
+
+ os class = WindowsProcess ifTrue: [ ^ winBlock value ].
+ os class = UnixProcess ifTrue: [ ^ unixBlock value ].!
Item was removed:
- ----- Method: FileFtpExecutive>>externalFtp:from:to: (in category 'external ftp') -----
- externalFtp: getOrPut from: aFile to: bFile
-
- File tmpDo: [ :cmds |
-
- cmds writer: [ :str |
- str << 'open ' << self host; cr.
- str << 'user ' << self user << ' ' << self password; cr.
- str << 'binary' ; cr.
- str << getOrPut << ' "' << aFile << '" "' << bFile << '"' ; cr.
- str << 'quit' ; cr.
- ].
-
- self class OSProcessOrNil waitForCommand: 'ftp -ig -s:' , cmds asVmPathName.
-
- ].!
More information about the Packages
mailing list