2022-10-16 22:41:12 +00:00
|
|
|
Class {
|
|
|
|
#name : #MiniDocs,
|
|
|
|
#superclass : #Object,
|
|
|
|
#category : #MiniDocs
|
|
|
|
}
|
|
|
|
|
|
|
|
{ #category : #accessing }
|
|
|
|
MiniDocs class >> appFolder [
|
|
|
|
| tempFolder |
|
|
|
|
tempFolder := FileLocator userData / 'Mutabit' / 'MiniDocs'.
|
|
|
|
tempFolder exists ifFalse: [ tempFolder ensureCreateDirectory ].
|
|
|
|
^ tempFolder
|
|
|
|
]
|
2022-10-16 23:52:07 +00:00
|
|
|
|
|
|
|
{ #category : #accessing }
|
|
|
|
MiniDocs class >> installYamlToJson [
|
|
|
|
"For the moment, only Gnu/Linux and Mac are supported.
|
|
|
|
IMPORTANT: Nimble, Nim's package manager should be installed, as this process doesn't verify its proper installation."
|
|
|
|
self yamlToJsonBinary exists ifTrue: [ ^ MiniDocs appFolder ].
|
|
|
|
Nimble install: 'commandeer'.
|
|
|
|
OSSUnixSubprocess new
|
|
|
|
command: 'nim';
|
|
|
|
arguments: {'c'. self yamlToJsonSourceCode fullName};
|
|
|
|
runAndWaitOnExitDo: [ :process :outString |
|
2022-10-17 00:10:37 +00:00
|
|
|
(self yamlToJsonSourceCode parent / self yamlToJsonSourceCode basenameWithoutExtension) moveTo: MiniDocs appFolder asFileReference.
|
2022-10-16 23:52:07 +00:00
|
|
|
^ MiniDocs appFolder ]
|
|
|
|
]
|
|
|
|
|
|
|
|
{ #category : #accessing }
|
|
|
|
MiniDocs class >> yamlToJson: yamlString [
|
|
|
|
|
|
|
|
self yamlToJsonBinary exists ifFalse: [ self installYamlToJson ].
|
|
|
|
|
|
|
|
OSSUnixSubprocess new
|
|
|
|
command: self yamlToJsonBinary fullName;
|
2022-10-17 00:10:37 +00:00
|
|
|
arguments: {yamlString};
|
|
|
|
redirectStdout;
|
|
|
|
runAndWaitOnExitDo: [ :process :outString |
|
|
|
|
^ (STONJSON fromString: outString allButFirst) first
|
|
|
|
]
|
2022-10-16 23:52:07 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
{ #category : #accessing }
|
|
|
|
MiniDocs class >> yamlToJsonBinary [
|
|
|
|
^ self appFolder / 'yamlToJson'
|
|
|
|
]
|
|
|
|
|
|
|
|
{ #category : #accessing }
|
|
|
|
MiniDocs class >> yamlToJsonSourceCode [
|
2022-10-17 00:10:37 +00:00
|
|
|
^ FileLocator image parent / 'pharo-local/iceberg/Offray/MiniDocs/src/yamlToJson.nim'
|
2022-10-16 23:52:07 +00:00
|
|
|
]
|