12 buildGo123Module rec {
16 src = fetchFromGitHub {
20 hash = "sha256-0KxT4t77EDB7Vr/cb+P20ARRR+7g5uZiF5QYOArUhgI=";
23 vendorHash = "sha256-9APQDYCBvG38y0ZYuacfyUmjoEV9jGqRg7OZ7mArzIU=";
25 # By default, libs and bins are stripped. KCL will crash on darwin if they are.
26 dontStrip = stdenv.hostPlatform.isDarwin;
30 "-X=kcl-lang.io/cli/pkg/version.version=v${version}"
33 nativeBuildInputs = [ makeWrapper installShellFiles ];
35 buildInputs = [ kclvm kclvm_cli ] ++ (
36 lib.optional stdenv.hostPlatform.isDarwin [
37 darwin.apple_sdk.frameworks.Security
38 darwin.apple_sdk.frameworks.CoreServices
39 darwin.apple_sdk.frameworks.SystemConfiguration
43 subPackages = [ "cmd/kcl" ];
45 # env vars https://github.com/kcl-lang/kcl-go/blob/main/pkg/env/env.go#L29
47 wrapProgram $out/bin/kcl \
48 --prefix PATH : "${lib.makeBinPath [kclvm kclvm_cli]}" \
49 --prefix KCL_LIB_HOME : "${lib.makeLibraryPath [kclvm]}" \
50 --prefix KCL_GO_DISABLE_INSTALL_ARTIFACT : false
54 export HOME=$(mktemp -d)
55 installShellCompletion --cmd kcl \
56 --bash <($out/bin/kcl completion bash) \
57 --fish <($out/bin/kcl completion fish) \
58 --zsh <($out/bin/kcl completion zsh)
62 description = "A command line interface for KCL programming language";
63 homepage = "https://github.com/kcl-lang/cli";
64 license = licenses.asl20;
65 platforms = platforms.linux ++ platforms.darwin;
66 maintainers = with maintainers; [ selfuryon peefy ];