summary refs log tree commit diff stats
path: root/user/settings/satoshipay.nix
blob: b93d7eee0a95d66eb1ecac0594a4209164c770ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
{
  config,
  lib,
  pkgs,
  ...
}: let
  inherit (pkgs) stdenv;
  spGitConfig = {
    user.email = "alan@satoshipay.io";
  };
in {
  imports = [
    ./development/javascript.nix
    ./development/web.nix
  ];

  home.sessionVariables = {
    KUBECTX_IGNORE_FZF = "1";
  };
  home.packages = with pkgs; ([
      caddy
      openssl
      mongodb-tools
      pgcli
      pgformatter
      postgresql
      s3cmd
      sops

      lumen

      mkcert
      google-cloud-sdk
      doctl
      kubectl
      kubetail
      kubectx
      kubernetes-helm
      helmfile
    ]
    ++ (lib.optionals (!stdenv.isDarwin)
      [
        docker-compose

        ripcord
        robo3t
      ]));
  programs.emacs.extraPackages = epkgs: (with epkgs; [
    docker-compose-mode
    dockerfile-mode
    feature-mode
    gitlab-ci-mode
    gitlab-ci-mode-flycheck
    k8s-mode
    kubel
    kubel-evil
  ] ++ lib.optionals (!stdenv.isDarwin) [
    pkgs.mu
  ]);

  programs.git.includes = [
    {
      condition = "gitdir:~/projects/github.com/satoshipay/";
      contents = spGitConfig;
    }
    {
      condition = "gitdir:~/projects/gitlab.satoshipay.tech/";
      contents = spGitConfig;
    }
  ];

  programs.zsh = {
    plugins = [
      {
        name = "kubectl-aliases";
        src = pkgs.fetchFromGitHub {
          owner = "alanpearce";
          repo = "kubectl-aliases";
          rev = "fb43d6ca209d88e7cda5ea437bf9429645f6818f";
          # date = 2020-11-18T14:20:16+01:00;
          sha256 = "1xlq0vzxaiv2ciwifamr29lcqdyg44dra48c5ad29rj973vvy97z";
        };
      }
    ];
    shellAliases = {
      kns = "kubens";
      kx = "kubectx";
      ks = "echo $(kubectx -c):$(kubens -c)";
      klot = "kubetail";
    };
    initExtra = ''
      if [[ -n $commands[helm] ]]
      then
      autoload _helm
      compdef _helm helm
      fi
    '';
  };

  accounts.email.accounts.satoshipay = let
    address = "alan@satoshipay.io";
  in {
    inherit address;
    primary = lib.mkDefault true;
    realName = "Alan Pearce";
    flavor = "gmail.com";
    passwordCommand = "${pkgs.python3Packages.keyring}/bin/keyring get satoshipay-google-mail ${address}";
    folders = {
      inbox = "INBOX";
      drafts = "[Gmail]/Drafts";
      sent = "[Gmail]/Sent Mail";
      trash = "[Gmail]/Bin";
    };
    imap = {
      tls.enable = true;
    };
    smtp = {
      tls.enable = true;
    };
    mbsync = {
      enable = true;
      create = "maildir";
      remove = "maildir";
      expunge = "both";
    };
    msmtp = {
      enable = true;
    };
  };

  home.file.".npmrc".text = ''
    @satoshipay:registry=https://registry.npmjs.org/
  '';
}