MCFileTreeFileSystemUtils.st
author Claus Gittinger <cg@exept.de>
Sat, 01 Sep 2018 17:32:31 +0200
changeset 1087 d37466310a6a
parent 1086 efc5221435a5
permissions -rw-r--r--
initial checkin class: MCFileTreeFileSystemUtils class: MCFileTreeFileSystemUtils class added:17 methods
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1086
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
MCFileTreeFileUtils subclass:#MCFileTreeFileSystemUtils
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'SCM-Monticello-FileTree-FileSystem-Utilities'
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!MCFileTreeFileSystemUtils class methodsFor:'initialization'!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
initialize
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    "self initialize"
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    self install
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
! !
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!MCFileTreeFileSystemUtils class methodsFor:'utilities'!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
default
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
    ^ DiskStore activeClass createDefault defaultWorkingDirectory asFileReference
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
deleteAll: aDirectory
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
    ^ aDirectory deleteAll
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
directoryExists: aDirectory
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
    ^ aDirectory isDirectory
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
directoryFromEntry: directoryEntry
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
    ^ directoryEntry asFileReference
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
directoryFromPath: directoryPath
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    ^ (AbsolutePath from: directoryPath delimiter: self pathNameDelimiter) asFileReference
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
directoryFromPath: directoryPath relativeTo: aDirectory
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    ^ aDirectory resolveString: directoryPath
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
directoryName: aDirectory
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    ^ aDirectory basename
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
directoryPathString: aDirectory
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    ^ aDirectory pathString
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
ensureDirectoryExists: aDirectory
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    aDirectory ensureCreateDirectory
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
ensureFilePathExists: fileNameOrPath relativeTo: aDirectory
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    (aDirectory resolveString: fileNameOrPath) parent ensureCreateDirectory
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
filePathExists: filePath relativeTo: aDirectory
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    ^ (aDirectory resolveString: filePath) isFile
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
parentDirectoryOf: aDirectory
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    ^ aDirectory parent
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
pathNameDelimiter
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    ^ DiskStore activeClass delimiter
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
readStreamFor: filePath in: aDirectory do: aBlock
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    "temporary hack for Pharo-1.4"
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    ^ (aDirectory resolveString: filePath)
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
        readStreamDo: [ :fileStream | 
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
            | stream |
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
            stream := ReadStream on: fileStream contents asString.
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
            stream reset.
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
            aBlock value: stream ]
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
resolvePath: path in: aDirectory
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    ^ aDirectory resolveString: path
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
writeStreamFor: filePath in: aDirectory do: aBlock
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    (aDirectory resolveString: filePath) writeStreamDo: aBlock
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
! !
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
!MCFileTreeFileSystemUtils class methodsFor:'documentation'!
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
version_CVS
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
    ^ '$Header$'
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
! !
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
efc5221435a5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
MCFileTreeFileSystemUtils initialize!