Fixing network issues while installing packages via delayed repeated attemps, following Kendrick readme instructions (https://is.gd/nusive)

This commit is contained in:
Offray Vladimir Luna Cárdenas 2022-08-10 16:56:57 -05:00
parent 4058186ae1
commit fe8962e1e7
1 changed files with 25 additions and 18 deletions

View File

@ -10,27 +10,34 @@ Class {
{ #category : #accessing } { #category : #accessing }
ExoRepo >> load [ ExoRepo >> load [
"I load the configuration of this package using a external Gitea repository." "I load the configuration of this package using a external Gitea repository."
"While more Git independient providers are implemented in Monticello, I will "While more Git independient providers are implemented in Monticello, I will
use Iceberg to download the repository and load it from a local directory" use Iceberg to download the repository and load it from a local directory"
| localRepo repoName |
| localRepo repoName count |
"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. repoName := self repositoryName.
"Local and remote repo definition" self local exists
self local exists ifFalse: [ ifFalse: [ (IceRepositoryCreator new
(IceRepositoryCreator new location: self local;
location: self local; remote: (IceGitRemote url: self repository greaseString , '.git');
remote: (IceGitRemote url: self repository asString, '.git'); createRepository) register ].
createRepository) localRepo := 'gitlocal://' , self local fullName.
register count := 1.
]. [ true ]
"Package loading" whileTrue: [ [ ^ Metacello new
localRepo := 'gitlocal://', self local fullName. repository: localRepo;
^ Metacello new baseline: repoName;
repository: localRepo; onConflictUseLoaded;
baseline: repoName; onWarningLog;
load. load ]
on: IceGenericError
do: [ :ex |
Notification
signal: (String with: Character cr) , ex description , (String with: Character cr)
, 'RETRYING ' , count greaseString.
(Delay forSeconds: 2) wait.
ex retry ].
count := count + 1 ]
] ]
{ #category : #accessing } { #category : #accessing }