From 459ead9573cada08914f2d717b0cd4ca58cb45f4 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 9 Mar 2026 20:12:24 +0100 Subject: [PATCH] build(nix/flake): adding the flake.nix --- flake.nix | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 flake.nix diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..1dab918 --- /dev/null +++ b/flake.nix @@ -0,0 +1,75 @@ +{ + description = "Shell for DrQuine project"; + + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + inputs.flake-utils.url = "github:numtide/flake-utils"; + + outputs = + { + self, + nixpkgs, + flake-utils, + }: + flake-utils.lib.eachDefaultSystem ( + system: + let + pkgs = import nixpkgs { + inherit system; + }; + tmux-setup = pkgs.writeShellScriptBin "tmux-setup" '' + #!/usr/bin/env sh + SESSION="libasm" + DIR=$(git rev-parse --show-toplevel 2>/dev/null || pwd) + if ! tmux has-session -t $SESSION 2>/dev/null; then + tmux new-session -d -s $SESSION -c "$DIR" -n dev + tmux send-keys -t $SESSION:0 'vim' C-m + tmux split-window -h -p 30 -t $SESSION:0 -c "$DIR" + tmux send-keys -t $SESSION:0.1 'exec zsh' C-m + tmux new-window -t $SESSION:1 -n git -c "$DIR" + tmux send-keys -t $SESSION:1 'lazygit' C-m + fi + tmux select-window -t $SESSION:0 + tmux select-pane -t $SESSION:0.0 + tmux attach -t $SESSION + ''; + in + { + devShells.default = pkgs.mkShell { + name = "libasm-42"; + buildInputs = + with pkgs; + [ + tmux-setup + nasm + gcc + clang + clang-tools + binutils + gnumake + lldb + coreutils + xxd + valgrind + clang-tools + asm-lsp + ] + ++ ( + if pkgs.stdenv.isLinux then + [ + strace + valgrind + ] + else + [ ] + ); + + shellHook = '' + export AS=nasm + export CC='clang' + export ASM_LSP_CONFIG="$(pwd)/asm-lsp.toml" + printf "\n\033[0;90mASM env loaded for: \033[38;5;220m${system}\033[0m\n" + ''; + }; + } + ); +}