tvl-depot/users/glittershark/system/home/modules/development.nix
Griffin Smith cc12188d31 feat(gs/home): Integrate home-manager with depot
Essentially the same as for nixos, so I can get whitby to compile stuff
for me. Eventually I'll generalize this so things aren't as hardcoded to
my particular setup, but for now I'm the only one in the depot who's
using home-manager so this should be fine.

Change-Id: I1cb0344f5a11eea68bddc98976999c0928dfa84e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/937
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-07-13 23:41:23 +00:00

176 lines
4 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";
};
modSha256 = "07ci2726nrn8qjvwcypk6nf8zqmfnmvch8l28bmgj7hpfrbyb424";
};
in
with lib;
{
imports = [
./lib/zshFunctions.nix
./development/kube.nix
./development/urbint.nix
./development/agda.nix
];
home.packages = with pkgs; [
jq
yq
gitAndTools.hub
gitAndTools.tig
shellcheck
httpie
entr
gnumake
inetutils
loc
jsonnet
clj2nix
pg-dump-upsert
config.lib.depot.third_party.clang-tools
]; # ++ optional (stdenv.isLinux) julia;
programs.git = {
enable = true;
package = pkgs.gitFull;
userEmail = "root@gws.fyi";
userName = "Griffin Smith";
ignores = [
"*.sw*"
".classpath"
".project"
".settings/"
".dir-locals.el"
".stack-work-profiling"
".projectile"
];
extraConfig = {
github.user = "glittershark";
merge.conflictstyle = "diff3";
};
delta = {
enable = true;
options = [
"--theme 'Solarized (light)'"
"--hunk-style" "plain"
"--commit-style" "box"
];
};
};
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]
\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";
"git" = "hub";
"grim" = "git fetch && git rebase -i origin/master";
"groc" = "git fetch && git rebase --autostash origin/canon";
"grc" = "git rebase --continue";
"gcan" = "git commit --amend --no-edit";
"grl" = "git reflog";
# Haskell
"cb" = "cabal build";
"crl" = "cabal repl";
"cr" = "cabal run";
"ct" = "cabal run test";
"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
'';
};
};
}