1{ 2 description = "Developmet flake for nvimpager"; 3 inputs = { 4 nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; 5 flake-utils.url = "github:numtide/flake-utils"; 6 neovim.url = "github:nix-community/neovim-nightly-overlay"; 7 }; 8 9 outputs = { self, nixpkgs, flake-utils, neovim, ... }: { 10 overlay = final: prev: { 11 nvimpager = prev.nvimpager.overrideAttrs (oa: { 12 version = "dev"; 13 src = ./.; 14 }); 15 }; 16 } 17 // 18 flake-utils.lib.eachDefaultSystem (system: 19 let 20 stable = import nixpkgs { overlays = [ self.overlay ]; inherit system; }; 21 nightly = import nixpkgs { overlays = [ neovim.overlay self.overlay ]; inherit system; }; 22 mkShell = pkgs: pkgs.mkShell { 23 inputsFrom = [ pkgs.nvimpager ]; 24 packages = with pkgs; [ 25 lua51Packages.luacov 26 git 27 tmux 28 hyperfine 29 ]; 30 shellHook = '' 31 # to find nvimpager lua code in the current dir 32 export LUA_PATH=./?.lua''${LUA_PATH:+\;}$LUA_PATH 33 # fix for my terminal in a pure shell 34 if [ "$TERM" = xterm-termite ]; then 35 export TERM=xterm 36 fi 37 ''; 38 }; 39 in rec { 40 packages = { 41 nvimpager = stable.nvimpager; 42 nvimpager-with-nightly-neovim = nightly.nvimpager; 43 }; 44 defaultPackage = stable.nvimpager; 45 apps.nvimpager = flake-utils.lib.mkApp { drv = stable.nvimpager; name = "nvimpager"; }; 46 defaultApp = apps.nvimpager; 47 devShell = devShells.stable; 48 devShells = { 49 stable = mkShell stable; 50 nightly = mkShell nightly; 51 }; 52 } 53 ); 54} 55