87 ! |
89 ! |
88 |
90 |
89 parseName: aString extension: extension |
91 parseName: aString extension: extension |
90 "picked up from GoferVersionReference>>parseName:" |
92 "picked up from GoferVersionReference>>parseName:" |
91 |
93 |
92 | info basicName package branch author versionNumber packageName | |
94 | "info" basicName package branch author versionNumber packageName | |
93 basicName := aString last isDigit |
95 basicName := aString last isDigit |
94 ifTrue: [ aString ] |
96 ifTrue: [ aString ] |
95 ifFalse: [ (aString copyUpToLast: $.) copyUpTo: $( ]. |
97 ifFalse: [ (aString copyUpToLast: $.) copyUpTo: $( ]. |
96 package := basicName copyUpToLast: $-. |
98 package := basicName copyUpToLast: $-. |
97 (package includes: $.) |
99 (package includes: $.) |
107 packageName := package , branch. |
109 packageName := package , branch. |
108 ^ {packageName. |
110 ^ {packageName. |
109 author. |
111 author. |
110 versionNumber. |
112 versionNumber. |
111 (packageName , extension)} |
113 (packageName , extension)} |
|
114 |
|
115 "Modified (comment): / 01-09-2018 / 17:33:38 / Claus Gittinger" |
112 ! |
116 ! |
113 |
117 |
114 urlAsFileReference: aZnUrl |
118 urlAsFileReference: aZnUrl |
115 "Extracted from ZnUrl since the scheme is restricted. |
119 "Extracted from ZnUrl since the scheme is restricted. |
116 We need to keep host as a segment part." |
120 We need to keep host as a segment part." |
149 ! |
153 ! |
150 |
154 |
151 repositoryBranchName |
155 repositoryBranchName |
152 "extract a branch name from the repository ... if possible" |
156 "extract a branch name from the repository ... if possible" |
153 |
157 |
154 (MetacelloPlatform current gitBranchNameFor: self directory fullName) |
158 |sha| |
155 ifNotNil: [ :sha | ^ sha ]. |
159 |
|
160 (sha := MetacelloPlatform current gitBranchNameFor: self directory fullName) |
|
161 notNil ifTrue:[ ^ sha ]. |
156 ^ super repositoryBranchName |
162 ^ super repositoryBranchName |
|
163 |
|
164 "Modified: / 01-09-2018 / 17:34:23 / Claus Gittinger" |
157 ! |
165 ! |
158 |
166 |
159 repositoryDescription |
167 repositoryDescription |
160 ^ self description , ' [' , self repositoryVersionString , ':' |
168 ^ self description , ' [' , self repositoryVersionString , ':' |
161 , self repositoryBranchName , ']' |
169 , self repositoryBranchName , ']' |
162 ! |
170 ! |
163 |
171 |
164 repositoryVersionString |
172 repositoryVersionString |
165 "extract a version string from the repository ... if possible" |
173 "extract a version string from the repository ... if possible" |
166 |
174 |
167 (MetacelloPlatform current gitCommitShaFor: self directory fullName) |
175 |sha| |
168 ifNotNil: [ :sha | ^ sha ]. |
176 |
|
177 (sha := MetacelloPlatform current gitCommitShaFor: self directory fullName) |
|
178 notNil ifTrue: [^ sha ]. |
169 ^ super repositoryVersionString |
179 ^ super repositoryVersionString |
|
180 |
|
181 "Modified: / 01-09-2018 / 17:34:51 / Claus Gittinger" |
170 ! ! |
182 ! ! |
171 |
183 |
172 !MCFileTreeRepository methodsFor:'*metacello-mc'! |
184 !MCFileTreeRepository methodsFor:'*metacello-mc'! |
173 |
185 |
174 versionInfoFromVersionNamed: aString |
186 versionInfoFromVersionNamed: aString |
244 error: |
258 error: |
245 'filetree:// repository ' |
259 'filetree:// repository ' |
246 , |
260 , |
247 (self fileUtils directoryPathString: self directory) printString |
261 (self fileUtils directoryPathString: self directory) printString |
248 , ' does not exist.' ]. |
262 , ' does not exist.' ]. |
249 (self directory entries |
263 (configEntry := self directory entries |
250 detect: [ :entry | entry name = '.filetree' ] |
264 detect: [ :entry | entry name = '.filetree' ] |
251 ifNone: [ ]) |
265 ifNone: [ ]) |
252 ifNil: [ |
266 isNil ifTrue: [ |
253 repositoryProperties := self defaultRepositoryProperties. |
267 repositoryProperties := self defaultRepositoryProperties. |
254 self writeRepositoryProperties ] |
268 self writeRepositoryProperties ] |
255 ifNotNil: [ :configEntry | |
269 ifFalse: [ |
256 configEntry |
270 configEntry |
257 readStreamDo: [ :fileStream | repositoryProperties := MCFileTreeJsonParser parseStream: fileStream ] ] ]. |
271 readStreamDo: [ :fileStream | repositoryProperties := MCFileTreeJsonParser parseStream: fileStream ] ] ]. |
258 ^ repositoryProperties |
272 ^ repositoryProperties |
|
273 |
|
274 "Modified: / 01-09-2018 / 17:35:33 / Claus Gittinger" |
259 ! |
275 ! |
260 |
276 |
261 versionFrom: aVersionReferenceString |
277 versionFrom: aVersionReferenceString |
262 "until we no longer find .tree directories in the wild" |
278 "until we no longer find .tree directories in the wild" |
263 |
279 |