From 7c08a002cf2b501541d1fd6348bf02d6b9245859 Mon Sep 17 00:00:00 2001 From: Stefan Junker Date: Sat, 16 Nov 2024 20:55:43 +0100 Subject: [PATCH] feat(vscode): inline nix4vscode call --- nix/devShells.nix | 1 - nix/home-manager/programs/vscode/default.nix | 52 +++++++++++--- .../programs/vscode/nix4vscode/config.toml | 9 --- .../programs/vscode/nix4vscode/default.nix | 72 ------------------- 4 files changed, 41 insertions(+), 93 deletions(-) delete mode 100644 nix/home-manager/programs/vscode/nix4vscode/config.toml delete mode 100644 nix/home-manager/programs/vscode/nix4vscode/default.nix diff --git a/nix/devShells.nix b/nix/devShells.nix index d6c55f6..293af3c 100644 --- a/nix/devShells.nix +++ b/nix/devShells.nix @@ -83,7 +83,6 @@ screen inputs'.nixpkgs-kanidm.legacyPackages.kanidm - inputs'.nix4vscode.packages.default ]; # Set Environment Variables diff --git a/nix/home-manager/programs/vscode/default.nix b/nix/home-manager/programs/vscode/default.nix index d6f3f8f..5fbf2d1 100644 --- a/nix/home-manager/programs/vscode/default.nix +++ b/nix/home-manager/programs/vscode/default.nix @@ -1,4 +1,10 @@ -{ pkgs, repoFlake, ... }: +{ + config, + pkgs, + repoFlake, + lib, + ... +}: let pkgsVscodium = import repoFlake.inputs.nixpkgs-vscodium { inherit (pkgs) system config; }; in @@ -48,19 +54,43 @@ in golang.go jeff-hykin.better-go-syntax - - ibecker.treefmt-vscode ] ) ) - ++ [ - (pkgsVscodium.vscode-utils.extensionFromVscodeMarketplace { - name = "markdown-oxide"; - publisher = "felixzeller"; - version = "1.1.0"; - sha256 = "07l37hkg106m3nl9530l7i39iw1kibckv1zi4n23gbp7srdrwbs3"; - }) - ]; + ++ ( + let + nix4vscodeConfig = pkgs.writeText "nix4vscode.toml" '' + vscode_version = "${config.programs.vscode.package.version}" + + [[extensions]] + publisher_name = "FelixZeller" + extension_name = "markdown-oxide" + + [[extensions]] + publisher_name = "ibecker" + extension_name = "treefmt-vscode" + ''; + nix4vscode = + pkgs.runCommand "nix4vscode.nix" + { + __noChroot = true; + nativeBuildInputs = [ repoFlake.inputs.nix4vscode.packages.${pkgs.stdenv.system}.default ]; + } + '' + export RUST_BACKTRACE=full + export HOME=$(mktemp -d) + nix4vscode ${nix4vscodeConfig} > $out + ''; + nix4vscodeExtensions = builtins.removeAttrs (pkgs.callPackage nix4vscode { }) [ + "override" + "overrideDerivation" + ]; + nix4vscodeExtensions' = lib.attrsets.mapAttrsToList ( + _: v: builtins.head (builtins.attrValues v) + ) nix4vscodeExtensions; + in + nix4vscodeExtensions' + ); mutableExtensionsDir = true; }; diff --git a/nix/home-manager/programs/vscode/nix4vscode/config.toml b/nix/home-manager/programs/vscode/nix4vscode/config.toml deleted file mode 100644 index 38f9978..0000000 --- a/nix/home-manager/programs/vscode/nix4vscode/config.toml +++ /dev/null @@ -1,9 +0,0 @@ -vscode_version = "1.94.2" - -[[extensions]] -publisher_name = "FelixZeller" -extension_name = "markdown-oxide" - -[[extensions]] -publisher_name = "ibecker" -extension_name = "treefmt-vscode" diff --git a/nix/home-manager/programs/vscode/nix4vscode/default.nix b/nix/home-manager/programs/vscode/nix4vscode/default.nix deleted file mode 100644 index 3c5a268..0000000 --- a/nix/home-manager/programs/vscode/nix4vscode/default.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ pkgs, lib }: -let - inherit (pkgs.stdenv) - isDarwin - isLinux - isi686 - isx86_64 - isAarch32 - isAarch64 - ; - inherit (pkgs) vscode-utils; - merge = lib.attrsets.recursiveUpdate; -in -merge - (merge - (merge - (merge - { - "felixzeller"."markdown-oxide" = vscode-utils.extensionFromVscodeMarketplace { - name = "markdown-oxide"; - publisher = "felixzeller"; - version = "1.1.0"; - sha256 = "07l37hkg106m3nl9530l7i39iw1kibckv1zi4n23gbp7srdrwbs3"; - }; - } - ( - lib.attrsets.optionalAttrs (isLinux && (isi686 || isx86_64)) { - "ibecker"."treefmt-vscode" = vscode-utils.extensionFromVscodeMarketplace { - name = "treefmt-vscode"; - publisher = "ibecker"; - version = "2.1.0"; - sha256 = "1r17wjpw8xiha5r9h3146facxghpcp416zf8551sw93cmam9ky6j"; - arch = "linux-x64"; - }; - } - ) - ) - ( - lib.attrsets.optionalAttrs (isLinux && (isAarch32 || isAarch64)) { - "ibecker"."treefmt-vscode" = vscode-utils.extensionFromVscodeMarketplace { - name = "treefmt-vscode"; - publisher = "ibecker"; - version = "2.1.0"; - sha256 = "0swvl7fkjcwp43grnrhnmy60a5m3hfwawk204byi8hhbczy131li"; - arch = "linux-arm64"; - }; - } - ) - ) - ( - lib.attrsets.optionalAttrs (isDarwin && (isi686 || isx86_64)) { - "ibecker"."treefmt-vscode" = vscode-utils.extensionFromVscodeMarketplace { - name = "treefmt-vscode"; - publisher = "ibecker"; - version = "2.1.0"; - sha256 = "1swq9hy6a9nzkrn07j21g59pyk2m7aqsfi1pphl9l9y8p4zwiaqm"; - arch = "darwin-x64"; - }; - } - ) - ) - ( - lib.attrsets.optionalAttrs (isDarwin && (isAarch32 || isAarch64)) { - "ibecker"."treefmt-vscode" = vscode-utils.extensionFromVscodeMarketplace { - name = "treefmt-vscode"; - publisher = "ibecker"; - version = "2.1.0"; - sha256 = "1xg3wnn3f1kvsz5a09l0cjpzfm3l9va73cahbvl14mx3n6734r2m"; - arch = "darwin-arm64"; - }; - } - )