Improving command line wrapper.

This commit is contained in:
Ruidajo 2022-02-03 15:44:14 -05:00
parent cf919bdaf6
commit 46e5f25e76
1 changed files with 36 additions and 47 deletions

View File

@ -13,7 +13,8 @@ Class {
#superclass : #Object,
#instVars : [
'local',
'remote'
'remote',
'repository'
],
#classInstVars : [
'executable'
@ -32,6 +33,15 @@ FossilRepo class >> executable: aPathString [
executable := aPathString
]
{ #category : #'instance creation' }
FossilRepo class >> local: aFilePath repository: aFossilFilePath [
^ self new
local: aFilePath;
repository: aFossilFilePath;
yourself
]
{ #category : #accessing }
FossilRepo class >> locateExecutable [
Smalltalk os isWindows ifTrue: [ ^ self ].
@ -43,18 +53,6 @@ FossilRepo class >> locateExecutable [
^ outString allButLast ]
]
{ #category : #operation }
FossilRepo >> add2: aFileRealitvePath [
OSSUnixSubprocess new
command: 'fossil';
arguments: { 'add' . aFileRealitvePath };
workingDirectory: self localFolderName2;
redirectStdout;
redirectStderr;
runAndWaitOnExitDo: [ :process :outString | ^ outString ]
]
{ #category : #operation }
FossilRepo >> add: fileRelativePath [
"I add a file to the working Fossil repository, given that both, the file and the repositor,
@ -62,7 +60,7 @@ FossilRepo >> add: fileRelativePath [
OSSUnixSubprocess new
command: self class locateExecutable;
workingDirectory: self localFolderName;
workingDirectory: self localRoot;
arguments: { 'add' . fileRelativePath };
redirectStdout;
runAndWaitOnExitDo: [ :process :outString | ^ outString ]
@ -103,7 +101,7 @@ FossilRepo >> command: aCommandArgument [
OSSUnixSubprocess new
command: 'fossil';
arguments: { aCommandArgument };
workingDirectory: self localFolderName2;
workingDirectory: self localRoot;
redirectStdout;
redirectStderr;
runAndWaitOnExitDo: [ :process :outString | ^ outString ]
@ -117,7 +115,7 @@ FossilRepo >> commit: message [
OSSUnixSubprocess new
command: self class locateExecutable;
arguments: { 'commit' . '--no-warnings' . '-m' . message };
workingDirectory: self localFolderName;
workingDirectory: self localRoot;
redirectStdout;
runAndWaitOnExitDo: [ :process :outString | ^ outString ]
]
@ -138,7 +136,7 @@ FossilRepo >> commit: message withEnabledWarnings: aBoolean [
warningCommand.
'-m'.
message};
workingDirectory: self localFolderName;
workingDirectory: self localRoot;
redirectStdout;
runAndWaitOnExitDo: [ :process :outString | ^ outString ]
]
@ -165,7 +163,7 @@ FossilRepo >> fossilUv: anArgument arg2: aSecondArgument [
OSSUnixSubprocess new
command: 'fossil';
arguments: { 'uv' . anArgument . aSecondArgument };
workingDirectory: self localFolderName2;
workingDirectory: self localRoot;
redirectStdout;
redirectStderr;
runAndWaitOnExitDo: [ :process :outString | ^ outString ]
@ -215,7 +213,7 @@ FossilRepo >> init: absolutePathString [
OSSUnixSubprocess new
command: self class locateExecutable;
arguments: { 'init' . absolutePathString };
workingDirectory: self localFolderName;
workingDirectory: self localRoot;
redirectStdout;
runAndWaitOnExitDo: [ :process :outString | ^ outString ]
]
@ -275,15 +273,11 @@ FossilRepo >> local: aLocalFilePath [
local := aLocalFilePath
]
{ #category : #'as yet unclassified' }
FossilRepo >> localFolderName [
^ self local parent fullName
]
{ #category : #accessing }
FossilRepo >> localFolderName2 [
^ self local fullName
FossilRepo >> localRoot [
local ifNotNil: [ ^ self local fullName ].
^((self status lines detect: [ :line | line beginsWith: 'local-root:' ]) splitOn: ':') second trimmed
]
{ #category : #authentication }
@ -324,6 +318,18 @@ FossilRepo >> remote: anUrlString [
remote := anUrlString asUrl
]
{ #category : #accessing }
FossilRepo >> repository [
^ repository
]
{ #category : #accessing }
FossilRepo >> repository: aFossilRepoFile [
^ repository := aFossilRepoFile fullName
]
{ #category : #utilities }
FossilRepo >> sanitize: aFileNameWithRelativePath [
"I dicern if my argument concerns to a versioned or an unversioned file,
@ -334,33 +340,16 @@ FossilRepo >> sanitize: aFileNameWithRelativePath [
ifTrue: [ ^ (aFileNameWithRelativePath copyFrom: 4 to: aFileNameWithRelativePath size) ]
]
{ #category : #'as yet unclassified' }
FossilRepo >> status [
OSSUnixSubprocess new
command: '/usr/bin/fossil';
arguments: #('status');
workingDirectory: self localFolderName;
redirectStdout;
redirectStderr;
runAndWaitOnExitDo: [ :process :outString | ^ outString ]
]
{ #category : #accessing }
FossilRepo >> status2 [
FossilRepo >> status [
^ self command: 'status'.
^ self command: 'status'
]
{ #category : #accessing }
FossilRepo >> update [
OSSUnixSubprocess new
command: 'fossil';
arguments: #('update');
workingDirectory: self localFolderName2;
redirectStdout;
redirectStderr;
runAndWaitOnExitDo: [ :process :outString | ^ outString ]
^ self command: 'update'
]
{ #category : #accessing }