diff options
| author | tv <tv@krebsco.de> | 2019-12-02 01:15:57 +0100 | 
|---|---|---|
| committer | tv <tv@krebsco.de> | 2019-12-02 01:25:30 +0100 | 
| commit | 19af2530aaa0997c2c4cff68333b68df840ba8e7 (patch) | |
| tree | 8e8ea594739aaa387f7d2aebcbf99738bfc89a82 | |
| parent | b9274ee3784b18f817540d677536ecf4545823c3 (diff) | |
tv im: configs -> modules
| -rw-r--r-- | tv/1systems/nomic/config.nix | 1 | ||||
| -rw-r--r-- | tv/2configs/im.nix | 24 | ||||
| -rw-r--r-- | tv/3modules/default.nix | 1 | ||||
| -rw-r--r-- | tv/3modules/im.nix | 72 | 
4 files changed, 73 insertions, 25 deletions
| diff --git a/tv/1systems/nomic/config.nix b/tv/1systems/nomic/config.nix index a89f07e..86f9b7e 100644 --- a/tv/1systems/nomic/config.nix +++ b/tv/1systems/nomic/config.nix @@ -8,7 +8,6 @@ with import <stockholm/lib>;      <stockholm/tv/2configs/hw/x220.nix>      <stockholm/tv/2configs/exim-retiolum.nix>      <stockholm/tv/2configs/gitrepos.nix> -    <stockholm/tv/2configs/im.nix>      <stockholm/tv/2configs/mail-client.nix>      <stockholm/tv/2configs/nginx/public_html.nix>      <stockholm/tv/2configs/pulse.nix> diff --git a/tv/2configs/im.nix b/tv/2configs/im.nix deleted file mode 100644 index 82f1be0..0000000 --- a/tv/2configs/im.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ config, lib, pkgs, ... }: -with import <stockholm/lib>; -{ -  environment.systemPackages = with pkgs; [ -    (pkgs.writeDashBin "im" '' -      export PATH=${makeSearchPath "bin" (with pkgs; [ -        tmux -        gnugrep -        weechat -      ])} -      if tmux list-sessions -F\#S | grep -q '^im''$'; then -        exec tmux attach -t im -      else -        exec tmux new -s im weechat -      fi -    '') -  ]; -  services.bitlbee = { -    enable = true; -    plugins = [ -      pkgs.bitlbee-facebook -    ]; -  }; -} diff --git a/tv/3modules/default.nix b/tv/3modules/default.nix index db2cdcd..5be1bee 100644 --- a/tv/3modules/default.nix +++ b/tv/3modules/default.nix @@ -5,6 +5,7 @@      ./ejabberd      ./focus.nix      ./hosts.nix +    ./im.nix      ./iptables.nix      ./slock.nix      ./x0vncserver.nix diff --git a/tv/3modules/im.nix b/tv/3modules/im.nix new file mode 100644 index 0000000..830c4ba --- /dev/null +++ b/tv/3modules/im.nix @@ -0,0 +1,72 @@ +{ config, pkgs, ... }: let +  im = config.tv.im; +  lib = import <stockholm/lib>; +in { +  options = { +    tv.im.client.enable = lib.mkEnableOption "tv.im.client" // { +      default = config.krebs.build.host.name == im.client.host.name; +    }; +    tv.im.client.term = lib.mkOption { +      default = "rxvt-unicode-256color"; +      type = lib.types.filename; +    }; +    tv.im.client.useIPv6 = lib.mkEnableOption "tv.im.client.useIPv6" // { +      default = true; +    }; +    tv.im.client.host = lib.mkOption { +      default = config.krebs.hosts.xu; +      type = lib.types.host; +    }; +    tv.im.client.user = lib.mkOption { +      default = config.krebs.users.tv; +      type = lib.types.user; +    }; + +    tv.im.server.enable = lib.mkEnableOption "tv.im.server" // { +      default = config.krebs.build.host.name == im.server.host.name; +    }; +    tv.im.server.host = lib.mkOption { +      default = config.krebs.hosts.nomic; +      type = lib.types.host; +    }; +    tv.im.server.user = lib.mkOption { +      default = config.krebs.users.tv; +      type = lib.types.user; +    }; +  }; +  imports = [ +    (lib.mkIf im.client.enable { +      users.users.${im.client.user.name}.packages = [ +        (pkgs.writeDashBin "im" '' +          exec ${pkgs.openssh}/bin/ssh \ +              ${lib.optionalString im.client.useIPv6 "-6"} \ +              ${im.server.user.name}@${lib.head im.server.host.nets.retiolum.aliases} \ +              -t \ +              im +        '') +      ]; +    }) +    (lib.mkIf im.server.enable { +      services.bitlbee = { +        enable = true; +        plugins = [ +          pkgs.bitlbee-facebook +        ]; +      }; +      users.users.${im.server.user.name}.packages = [ +        (pkgs.writeDashBin "im" '' +          export PATH=${lib.makeSearchPath "bin" [ +            pkgs.tmux +            pkgs.gnugrep +            pkgs.weechat +          ]} +          if tmux list-sessions -F\#S | grep -q '^im''$'; then +            exec tmux attach -t im +          else +            exec tmux new -s im weechat +          fi +        '') +      ]; +    }) +  ]; +} | 
