--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MCFileTreeFileSystemUtils.st Sat Sep 01 17:32:13 2018 +0200
@@ -0,0 +1,101 @@
+"{ 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!