diff --git a/src/MiniDocs/NanoID.class.st b/src/MiniDocs/NanoID.class.st index f29983b..1ccf498 100644 --- a/src/MiniDocs/NanoID.class.st +++ b/src/MiniDocs/NanoID.class.st @@ -28,6 +28,8 @@ NanoID class >> binaryFile [ { #category : #accessing } NanoID class >> generate [ self binaryFile exists ifFalse: [ NanoID install]. + Smalltalk os isWindows + ifTrue: [ ^ (LibC resultOfCommand:self binaryFile fullName) copyWithoutAll: (Character lf asString) ]. OSSUnixSubprocess new command: self binaryFile fullName; redirectStdout; @@ -41,6 +43,8 @@ NanoID class >> install [ IMPORTANT: Nimble, Nim's package manager should be installed, as this process doesn't verify its proper installation." self binaryFile exists ifTrue: [ ^ MiniDocs appFolder ]. Nimble install: 'nanoid'. + Smalltalk os isWindows + ifTrue: [ ^ LibC resultOfCommand: 'nanoid c ',self scriptSourceCode fullName ]. OSSUnixSubprocess new command: 'nim'; arguments: {'c'. self scriptSourceCode fullName}; diff --git a/src/MiniDocs/Nimble.class.st b/src/MiniDocs/Nimble.class.st index fdd9e19..78952aa 100644 --- a/src/MiniDocs/Nimble.class.st +++ b/src/MiniDocs/Nimble.class.st @@ -20,6 +20,8 @@ Nimble class >> detect: packageName [ Nimble class >> install: packageName [ (self detect: packageName) ifTrue: [ ^ self ]. self installPackagesList. + Smalltalk os isWindows + ifTrue: [ ^ LibC runCommand: 'nimble install ', packageName ]. OSSUnixSubprocess new command: 'nimble'; arguments: {'install'. @@ -41,11 +43,16 @@ Nimble class >> installPackagesList [ (FileLocator home / '.nimble' / 'packages_official.json') exists ifTrue: [ ^ self ]. - OSSUnixSubprocess new - command: 'nimble'; - arguments: #('refresh'); - redirectStdout; - runAndWaitOnExitDo: [ :process :outString | ^ outString ] + (Smalltalk os isUnix or: [ Smalltalk os isMacOS ]) + ifTrue: [ + OSSUnixSubprocess new + command: 'nimble'; + arguments: #('refresh'); + redirectStdout; + runAndWaitOnExitDo: [ :process :outString | ^ outString ]. + ]. + Smalltalk os isWindows + ifTrue: [ ^ LibC resultOfCommand: 'nimble refresh' ] ] { #category : #accessing }