commit 293b845fec09d862be039c8d7e700e0d01233d51 Author: Offray Luna Date: Sat Jul 24 09:35:29 2021 -0500 Starting sync. diff --git a/.project b/.project new file mode 100644 index 0000000..81083cc --- /dev/null +++ b/.project @@ -0,0 +1,3 @@ +{ + 'srcDirectory' : 'src' +} \ No newline at end of file diff --git a/src/.properties b/src/.properties new file mode 100644 index 0000000..ad0471d --- /dev/null +++ b/src/.properties @@ -0,0 +1,3 @@ +{ + #format : #tonel +} \ No newline at end of file diff --git a/src/ExoRepo/ExoRepo.class.st b/src/ExoRepo/ExoRepo.class.st new file mode 100644 index 0000000..4ee7ce5 --- /dev/null +++ b/src/ExoRepo/ExoRepo.class.st @@ -0,0 +1,58 @@ +Class { + #name : #ExoRepo, + #superclass : #Object, + #instVars : [ + 'url' + ], + #category : #ExoRepo +} + +{ #category : #accessing } +ExoRepo >> load [ + "I load the configuration of this package using a external Gitea repository." + "While more Git independient providers are implemented in Monticello, I will + use Iceberg to download the repository and load it from a local directory" + | location localRepo repoName packageName | + + "Sometimes repoName and packageName are different, following Pharo's conventions. + For example the repoName can be MyPackage, while packageName can be My-Package" + repoName := self repositoryName. + + "Local and remote repo definition" + location := FileLocator localDirectory / 'iceberg' / (self provider) / repoName. + location exists ifFalse: [ + (IceRepositoryCreator new + location: location; + remote: (IceGitRemote url: self url asString, '.git'); + createRepository) + register + ]. + "Package loading" + localRepo := 'gitlocal://', location fullName. + Metacello new + repository: localRepo; + baseline: repoName; + load. +] + +{ #category : #accessing } +ExoRepo >> provider [ + self url ifNil: [ ^ nil ]. + ^ self url segments first +] + +{ #category : #accessing } +ExoRepo >> repositoryName [ + self url ifNil: [ ^ self ]. + ^ self url segments last +] + +{ #category : #accessing } +ExoRepo >> url [ + ^ url. +] + +{ #category : #accessing } +ExoRepo >> url: aString [ + url := aString asZnUrl +] diff --git a/src/ExoRepo/package.st b/src/ExoRepo/package.st new file mode 100644 index 0000000..6c76baf --- /dev/null +++ b/src/ExoRepo/package.st @@ -0,0 +1 @@ +Package { #name : #ExoRepo }