From 9ae7a6ec624584ccc5bcaaeb76dc7eba2d51964a Mon Sep 17 00:00:00 2001 From: pfmar Date: Thu, 4 Apr 2024 17:35:25 -0500 Subject: [PATCH] Adding Nim and NanoID support to Windows platform. --- src/MiniDocs/NanoID.class.st | 4 ++++ src/MiniDocs/Nimble.class.st | 17 ++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) 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 }