123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- { pkgs, lib, config, inputs, ... }:
- let
- rosettaPkgs =
- if pkgs.stdenv.isDarwin && pkgs.stdenv.isAarch64
- then pkgs.pkgsx86_64Darwin
- else pkgs;
- darwinPackages = with pkgs; [
- darwin.apple_sdk.frameworks.Security
- darwin.apple_sdk.frameworks.CoreServices
- darwin.apple_sdk.frameworks.CoreFoundation
- darwin.apple_sdk.frameworks.Foundation
- darwin.apple_sdk.frameworks.AppKit
- darwin.apple_sdk.frameworks.WebKit
- ];
- linuxPackages = with pkgs; [
- libsoup_3
- webkitgtk_4_1
- librsvg
- libappindicator
- libayatana-appindicator
- ];
- in {
- packages = with pkgs; [
- git
- nodejs_22
- nodePackages_latest.typescript-language-server
- nodePackages_latest.vue-language-server
- cargo-edit
- ] ++ lib.optionals pkgs.stdenv.isDarwin darwinPackages
- ++ lib.optionals pkgs.stdenv.isLinux linuxPackages;
- env = {
- APP_GREET = "Hi!";
- } // lib.optionalAttrs pkgs.stdenv.isLinux {
- LD_LIBRARY_PATH = lib.makeLibraryPath [
- pkgs.libappindicator
- pkgs.libayatana-appindicator
- ];
- } // lib.optionalAttrs pkgs.stdenv.isDarwin {
- # Place to put macOS-specific environment variables
- };
- scripts = {
- hello.exec = "echo hello from $APP_GREET";
- e.exec = "emacs";
- };
- enterShell = ''
- git --version
- ${lib.optionalString pkgs.stdenv.isDarwin ''
- # Place to put macOS-specific shell initialization
- ''}
- ${lib.optionalString pkgs.stdenv.isLinux ''
- # Place to put Linux-specific shell initialization
- ''}
- '';
- enterTest = ''
- echo "Running tests"
- '';
- dotenv.enable = true;
- languages = {
- typescript.enable = true;
- javascript = {
- enable = true;
- pnpm.enable = true;
- npm.enable = true;
- };
- rust = {
- enable = true;
- channel = "nightly";
- components = [
- "rustc"
- "cargo"
- "clippy"
- "rustfmt"
- "rust-analyzer"
- "llvm-tools-preview"
- "rust-src"
- "rustc-codegen-cranelift-preview"
- ];
- };
- };
- }
|