Change-Id: I86a18fb3fa135c4324064e6acde06bd4dcfbb94d Reviewed-on: https://cl.tvl.fyi/c/depot/+/11294 Reviewed-by: aspen <root@gws.fyi> Tested-by: BuildkiteCI Autosubmit: aspen <root@gws.fyi>
		
			
				
	
	
		
			217 lines
		
	
	
	
		
			4.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			217 lines
		
	
	
	
		
			4.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ config, lib, pkgs, ... }:
 | 
						|
 | 
						|
let
 | 
						|
 | 
						|
  clj2nix = pkgs.callPackage
 | 
						|
    (pkgs.fetchFromGitHub {
 | 
						|
      owner = "hlolli";
 | 
						|
      repo = "clj2nix";
 | 
						|
      rev = "3ab3480a25e850b35d1f532a5e4e7b3202232383";
 | 
						|
      sha256 = "1lry026mlpxp1j563qs13nhxf37i2zpl7lh0lgfdwc44afybqka6";
 | 
						|
    })
 | 
						|
    { };
 | 
						|
 | 
						|
  pg-dump-upsert = pkgs.buildGoModule rec {
 | 
						|
    pname = "pg-dump-upsert";
 | 
						|
    version = "165258deaebded5e9b88f7a0acf3a4b7350e7bf4";
 | 
						|
 | 
						|
    src = pkgs.fetchFromGitHub {
 | 
						|
      owner = "tomyl";
 | 
						|
      repo = "pg-dump-upsert";
 | 
						|
      rev = version;
 | 
						|
      sha256 = "1an4h8jjbj3r618ykjwk9brii4h9cxjqy47c4c8rivnvhimgf4wm";
 | 
						|
    };
 | 
						|
 | 
						|
    vendorHash = "sha256:1a5fx6mrv30cl46kswicd8lf5i5shn1fykchvbnbhdpgxhbz6qi4";
 | 
						|
  };
 | 
						|
 | 
						|
in
 | 
						|
 | 
						|
with lib;
 | 
						|
 | 
						|
{
 | 
						|
  imports = [
 | 
						|
    ./lib/zshFunctions.nix
 | 
						|
    # TODO(aspen): agda build is broken in the nixpkgs checkout
 | 
						|
    # ./development/agda.nix
 | 
						|
    ./development/rust.nix
 | 
						|
  ];
 | 
						|
 | 
						|
  home.packages = with pkgs; [
 | 
						|
    jq
 | 
						|
    yq
 | 
						|
    gron
 | 
						|
    gitAndTools.tig
 | 
						|
    gitAndTools.gh
 | 
						|
    shellcheck
 | 
						|
    httpie
 | 
						|
    entr
 | 
						|
    gnumake
 | 
						|
    inetutils
 | 
						|
    tokei
 | 
						|
    jsonnet
 | 
						|
    ngrok
 | 
						|
    amber
 | 
						|
    ocamlPackages.patdiff
 | 
						|
 | 
						|
    gdb
 | 
						|
    lldb
 | 
						|
    hyperfine
 | 
						|
    clang-tools
 | 
						|
 | 
						|
    clj2nix
 | 
						|
    clojure
 | 
						|
    leiningen
 | 
						|
    clj-kondo
 | 
						|
 | 
						|
    pg-dump-upsert
 | 
						|
 | 
						|
    nodePackages.prettier
 | 
						|
  ] ++ optionals (stdenv.isLinux) [
 | 
						|
    # TODO(aspen): replace with stable again once the current julia debacle
 | 
						|
    # is resolved upstream, see https://github.com/NixOS/nixpkgs/pull/121114
 | 
						|
    julia_16-bin
 | 
						|
    valgrind
 | 
						|
 | 
						|
    linuxPackages.perf
 | 
						|
    rr
 | 
						|
  ];
 | 
						|
 | 
						|
  programs.git = {
 | 
						|
    enable = true;
 | 
						|
    package = pkgs.gitFull;
 | 
						|
    userEmail = "root@gws.fyi";
 | 
						|
    userName = "Aspen Smith";
 | 
						|
    ignores = [
 | 
						|
      "*.sw*"
 | 
						|
      ".classpath"
 | 
						|
      ".project"
 | 
						|
      ".settings/"
 | 
						|
      ".dir-locals.el"
 | 
						|
      ".stack-work-profiling"
 | 
						|
      ".projectile"
 | 
						|
    ];
 | 
						|
    extraConfig = {
 | 
						|
      github.user = "glittershark";
 | 
						|
      merge.conflictstyle = "diff3";
 | 
						|
      rerere.enabled = "true";
 | 
						|
      advice.skippedCherryPicks = "false";
 | 
						|
    };
 | 
						|
 | 
						|
    delta = {
 | 
						|
      enable = true;
 | 
						|
      options = {
 | 
						|
        syntax-theme = "Solarized (light)";
 | 
						|
        hunk-style = "plain";
 | 
						|
        commit-style = "box";
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  home.file.".gdbinit".text = ''
 | 
						|
    set history filename ~/.gdb_history
 | 
						|
    set history save on
 | 
						|
    set history size unlimited
 | 
						|
    set history remove-duplicates unlimited
 | 
						|
    set history expansion on
 | 
						|
  '';
 | 
						|
 | 
						|
  home.file.".psqlrc".text = ''
 | 
						|
    \set QUIET 1
 | 
						|
 | 
						|
    \timing
 | 
						|
    \set ON_ERROR_ROLLBACK interactive
 | 
						|
    \set VERBOSITY verbose
 | 
						|
    \x auto
 | 
						|
    \set PROMPT1 '%[%033[1m%]%M/%/%R%[%033[0m%]%# '
 | 
						|
    \set PROMPT2 '...%# '
 | 
						|
    \set HISTFILE ~/.psql_history- :DBNAME
 | 
						|
    \set HISTCONTROL ignoredups
 | 
						|
    \pset null [null]
 | 
						|
 | 
						|
    \pset linestyle 'unicode'
 | 
						|
    \pset unicode_border_linestyle single
 | 
						|
    \pset unicode_column_linestyle single
 | 
						|
    \pset unicode_header_linestyle double
 | 
						|
 | 
						|
    \unset QUIET
 | 
						|
  '';
 | 
						|
 | 
						|
  programs.readline = {
 | 
						|
    enable = true;
 | 
						|
    extraConfig = ''
 | 
						|
      set editing-mode vi
 | 
						|
    '';
 | 
						|
  };
 | 
						|
 | 
						|
  programs.zsh = {
 | 
						|
    shellAliases = {
 | 
						|
      # Git
 | 
						|
      "gwip" = "git add . && git commit -am wip";
 | 
						|
      "gpr" = "g pull-request";
 | 
						|
      "gcl" = "git clone";
 | 
						|
      "grs" = "gr --soft";
 | 
						|
      "grhh" = "grh HEAD";
 | 
						|
      "grh" = "gr --hard";
 | 
						|
      "gr" = "git reset";
 | 
						|
      "gcb" = "gc -b";
 | 
						|
      "gco" = "gc";
 | 
						|
      "gcd" = "gc development";
 | 
						|
      "gcm" = "gc master";
 | 
						|
      "gcc" = "gc canon";
 | 
						|
      "gc" = "git checkout";
 | 
						|
      "gbg" = "git branch | grep";
 | 
						|
      "gba" = "git branch -a";
 | 
						|
      "gb" = "git branch";
 | 
						|
      "gcv" = "git commit --verbose";
 | 
						|
      "gci" = "git commit";
 | 
						|
      "gm" = "git merge";
 | 
						|
      "gdc" = "gd --cached";
 | 
						|
      "gd" = "git diff";
 | 
						|
      "gsl" = "git stash list";
 | 
						|
      "gss" = "git show stash";
 | 
						|
      "gsad" = "git stash drop";
 | 
						|
      "gsa" = "git stash";
 | 
						|
      "gst" = "gs";
 | 
						|
      "gs" = "git status";
 | 
						|
      "gg" = "gl --decorate --oneline --graph --date-order --all";
 | 
						|
      "gl" = "git log";
 | 
						|
      "gf" = "git fetch";
 | 
						|
      "gur" = "gu --rebase";
 | 
						|
      "gu" = "git pull";
 | 
						|
      "gpf" = "gp -f";
 | 
						|
      "gpa" = "gp --all";
 | 
						|
      "gpu" = "git push -u origin \"$(git symbolic-ref --short HEAD)\"";
 | 
						|
      "gp" = "git push";
 | 
						|
      "ganw" = "git diff -w --no-color | git apply --cached --ignore-whitespace";
 | 
						|
      "ga" = "git add";
 | 
						|
      "gnp" = "git --no-pager";
 | 
						|
      "g" = "git";
 | 
						|
      "grim" = "git fetch && git rebase -i --autostash origin/master";
 | 
						|
      "grom" = "git fetch && git rebase --autostash origin/master";
 | 
						|
      "groc" = "git fetch && git rebase --autostash origin/canon";
 | 
						|
      "grc" = "git rebase --continue";
 | 
						|
      "gcan" = "git commit --amend --no-edit";
 | 
						|
      "grl" = "git reflog";
 | 
						|
 | 
						|
      # Haskell
 | 
						|
      "crl" = "cabal repl";
 | 
						|
      "cr" = "cabal run";
 | 
						|
      "cnb" = "cabal new-build";
 | 
						|
      "cob" = "cabal old-build";
 | 
						|
      "cnr" = "cabal new-run";
 | 
						|
      "cor" = "cabal old-run";
 | 
						|
      "ho" = "hoogle";
 | 
						|
    };
 | 
						|
 | 
						|
    functions = {
 | 
						|
      gdelmerged = ''
 | 
						|
        git branch --merged | egrep -v 'master' | tr -d '+ ' | xargs git branch -d
 | 
						|
      '';
 | 
						|
 | 
						|
      gref = ''
 | 
						|
        git show -s --pretty=reference "$1" | xclip -selection clipboard
 | 
						|
      '';
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |