From 13fd64c2f58596d50c43d620be3f8a6a6c321679 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Fri, 22 Oct 2021 16:26:19 -0400 Subject: [PATCH] make libPath part of Prelude --- kiss/src/kiss/CompilerTools.hx | 4 ++-- kiss/src/kiss/Helpers.hx | 5 ----- kiss/src/kiss/Kiss.hx | 1 + kiss/src/kiss/Macros.hx | 2 +- kiss/src/kiss/Prelude.hx | 5 +++++ projects/kiss-vscode/src/Main.kiss | 1 - projects/kiss-vscode/src/Util.kiss | 2 ++ 7 files changed, 11 insertions(+), 9 deletions(-) diff --git a/kiss/src/kiss/CompilerTools.hx b/kiss/src/kiss/CompilerTools.hx index e0c8f812..6f063041 100644 --- a/kiss/src/kiss/CompilerTools.hx +++ b/kiss/src/kiss/CompilerTools.hx @@ -76,7 +76,7 @@ class CompilerTools { var classPathFolders = classPath.split("/"); while (classPathFolders.length > 0) { try { - Helpers.libPath(classPathFolders[classPathFolders.length - 1]); + Prelude.libPath(classPathFolders[classPathFolders.length - 1]); break; } catch (e) { classPathFolders.pop(); @@ -116,7 +116,7 @@ class CompilerTools { mainHxFile = args.mainHxFile; copyToFolder(mainHxFile); } else { - copyToFolder(mainHxFile, Path.join([Helpers.libPath("kiss"), "src", "kiss"])); + copyToFolder(mainHxFile, Path.join([Prelude.libPath("kiss"), "src", "kiss"])); } var mainClassName = mainHxFile.withoutDirectory().withoutExtension(); diff --git a/kiss/src/kiss/Helpers.hx b/kiss/src/kiss/Helpers.hx index ce02911d..5318ce0e 100644 --- a/kiss/src/kiss/Helpers.hx +++ b/kiss/src/kiss/Helpers.hx @@ -561,9 +561,4 @@ class Helpers { throw CompileError.fromExp(exp, '$forThis bindings should be a list expression with an even number of sub expressions (at least 2)'); }; } - - // Get the path to a haxelib the user has installed - public static function libPath(haxelibName:String) { - return Prelude.assertProcess("haxelib", ["libpath", haxelibName]).trim(); - } } diff --git a/kiss/src/kiss/Kiss.hx b/kiss/src/kiss/Kiss.hx index de4819df..d662bbb0 100644 --- a/kiss/src/kiss/Kiss.hx +++ b/kiss/src/kiss/Kiss.hx @@ -76,6 +76,7 @@ class Kiss { "count" => Symbol("Lambda.count"), "enumerate" => Symbol("Prelude.enumerate"), "assertProcess" => Symbol("Prelude.assertProcess"), + "libPath" => Symbol("Prelude.libPath"), "random" => Symbol("Std.random"), "walkDirectory" => Symbol("Prelude.walkDirectory"), "purgeDirectory" => Symbol("Prelude.purgeDirectory"), diff --git a/kiss/src/kiss/Macros.hx b/kiss/src/kiss/Macros.hx index f8230ce5..80fa1a80 100644 --- a/kiss/src/kiss/Macros.hx +++ b/kiss/src/kiss/Macros.hx @@ -49,7 +49,7 @@ class Macros { var libPath = switch (args[0].def) { case StrExp(libName): - Helpers.libPath(libName); + Prelude.libPath(libName); default: throw CompileError.fromExp(args[0], "first argument to loadFrom should be a string literal of a haxe library's name"); }; diff --git a/kiss/src/kiss/Prelude.hx b/kiss/src/kiss/Prelude.hx index 972c8d68..f912046a 100644 --- a/kiss/src/kiss/Prelude.hx +++ b/kiss/src/kiss/Prelude.hx @@ -581,6 +581,11 @@ class Prelude { #end } + // Get the path to a haxelib the user has installed + public static function libPath(haxelibName:String) { + return assertProcess("haxelib", ["libpath", haxelibName]).trim(); + } + public static function filter(l:Iterable, ?p:(T) -> Bool):kiss.List { if (p == null) p = Prelude.truthy; diff --git a/projects/kiss-vscode/src/Main.kiss b/projects/kiss-vscode/src/Main.kiss index b9d37df9..a11b441f 100644 --- a/projects/kiss-vscode/src/Main.kiss +++ b/projects/kiss-vscode/src/Main.kiss @@ -12,7 +12,6 @@ (var &mut :KissConfig config null) (function :Void tryLoadConfig [&opt :String text] - // TODO if a config object is active and a shortcut panel is open, dispose the panel before we lose the handle in the current config object (let [handleConfigFailure ->errorMessage { (FileSystem.deleteDirectory activeConfigDir) diff --git a/projects/kiss-vscode/src/Util.kiss b/projects/kiss-vscode/src/Util.kiss index ccd9b5fc..f3b26c8f 100644 --- a/projects/kiss-vscode/src/Util.kiss +++ b/projects/kiss-vscode/src/Util.kiss @@ -5,6 +5,8 @@ options ,options result (ChildProcess.spawnSync command args options)] (if result.error + // TODO i can't remember if this needs to be a throw for some reason, + // but it seems like it's supposed to be (,onError ...)(return) like below (throw "Error $result.error from $command ${args}: $result.stdout $result.stderr") (case result.status (0 null)