MCFileTreeFileSystemUtils.st
author Claus Gittinger <cg@exept.de>
Sat, 01 Sep 2018 17:33:15 +0200
changeset 1092 8d0ea96a3d72
parent 1086 efc5221435a5
permissions -rw-r--r--
initial checkin class: MCFileTreeFileSystemUtils class: MCFileTreeFileSystemUtils class added:17 methods

"{ Package: 'stx:goodies/monticello' }"

"{ NameSpace: Smalltalk }"

MCFileTreeFileUtils subclass:#MCFileTreeFileSystemUtils
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'SCM-Monticello-FileTree-FileSystem-Utilities'
!


!MCFileTreeFileSystemUtils class methodsFor:'initialization'!

initialize
    "self initialize"

    self install
! !

!MCFileTreeFileSystemUtils class methodsFor:'utilities'!

default
    ^ DiskStore activeClass createDefault defaultWorkingDirectory asFileReference
!

deleteAll: aDirectory
    ^ aDirectory deleteAll
!

directoryExists: aDirectory
    ^ aDirectory isDirectory
!

directoryFromEntry: directoryEntry
    ^ directoryEntry asFileReference
!

directoryFromPath: directoryPath
    ^ (AbsolutePath from: directoryPath delimiter: self pathNameDelimiter) asFileReference
!

directoryFromPath: directoryPath relativeTo: aDirectory
    ^ aDirectory resolveString: directoryPath
!

directoryName: aDirectory
    ^ aDirectory basename
!

directoryPathString: aDirectory
    ^ aDirectory pathString
!

ensureDirectoryExists: aDirectory
    aDirectory ensureCreateDirectory
!

ensureFilePathExists: fileNameOrPath relativeTo: aDirectory
    (aDirectory resolveString: fileNameOrPath) parent ensureCreateDirectory
!

filePathExists: filePath relativeTo: aDirectory
    ^ (aDirectory resolveString: filePath) isFile
!

parentDirectoryOf: aDirectory
    ^ aDirectory parent
!

pathNameDelimiter
    ^ DiskStore activeClass delimiter
!

readStreamFor: filePath in: aDirectory do: aBlock
    "temporary hack for Pharo-1.4"

    ^ (aDirectory resolveString: filePath)
        readStreamDo: [ :fileStream | 
            | stream |
            stream := ReadStream on: fileStream contents asString.
            stream reset.
            aBlock value: stream ]
!

resolvePath: path in: aDirectory
    ^ aDirectory resolveString: path
!

writeStreamFor: filePath in: aDirectory do: aBlock
    (aDirectory resolveString: filePath) writeStreamDo: aBlock
! !

!MCFileTreeFileSystemUtils class methodsFor:'documentation'!

version_CVS
    ^ '$Header$'
! !


MCFileTreeFileSystemUtils initialize!