/
SystemResolver.class.st
76 lines (63 loc) · 1.8 KB
/
SystemResolver.class.st
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
"
I resolve origins that are related to the currently running Smalltalk system, using primitives provided by the VM.
"
Class {
#name : #SystemResolver,
#superclass : #FileSystemResolver,
#classVars : [
'UserLocalDirectory'
],
#category : #'FileSystem-Core-Base-Resolver'
}
{ #category : #accessing }
SystemResolver class >> defaultLocalDirectoryName [
^ 'pharo-local'
]
{ #category : #settings }
SystemResolver class >> settingsOn: aBuilder [
<systemsettings>
(aBuilder setting: #userLocalDirectory)
parent: #pharoSystem;
type: #Directory;
target: self;
description: 'The path of a directory where Pharo will store local files' ;
label: 'Local directory'.
]
{ #category : #accessing }
SystemResolver class >> userLocalDirectory [
^ UserLocalDirectory ifNil: [
(FileLocator imageDirectory / self defaultLocalDirectoryName) resolve ]
]
{ #category : #accessing }
SystemResolver class >> userLocalDirectory: aFileReference [
UserLocalDirectory := aFileReference
]
{ #category : #origins }
SystemResolver >> changes [
^ self image withExtension: Smalltalk changesSuffix
]
{ #category : #origins }
SystemResolver >> image [
^ self resolveString: Smalltalk primImagePath
]
{ #category : #origins }
SystemResolver >> imageDirectory [
^ self image parent
]
{ #category : #origins }
SystemResolver >> localDirectory [
^ self class userLocalDirectory
ifNil: [ (self imageDirectory / self class defaultLocalDirectoryName) ensureCreateDirectory ]
]
{ #category : #resolving }
SystemResolver >> supportedOrigins [
^ #(image imageDirectory changes vmBinary vmDirectory workingDirectory localDirectory)
]
{ #category : #origins }
SystemResolver >> vmBinary [
^ self resolveString: Smalltalk vm fullPath
]
{ #category : #origins }
SystemResolver >> vmDirectory [
^ self resolveString: Smalltalk vm directory
]