diff options
author | tv <tv@krebsco.de> | 2016-04-17 05:24:33 +0200 |
---|---|---|
committer | tv <tv@krebsco.de> | 2016-04-17 05:24:33 +0200 |
commit | 6ec3d922a48ad6a583315a4433a7170e6850c676 (patch) | |
tree | e66cc9279d2524e9b0caf0a963e00f2479f008cb /krebs/5pkgs/get-ssh-port/default.nix | |
parent | affb69250d13f64d2be14327c1b47d23cadcb987 (diff) |
krebs.backup network-ssh-port -> pkgs.get-ssh-port
Diffstat (limited to 'krebs/5pkgs/get-ssh-port/default.nix')
-rw-r--r-- | krebs/5pkgs/get-ssh-port/default.nix | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/krebs/5pkgs/get-ssh-port/default.nix b/krebs/5pkgs/get-ssh-port/default.nix new file mode 100644 index 000000000..2d106b2b6 --- /dev/null +++ b/krebs/5pkgs/get-ssh-port/default.nix @@ -0,0 +1,29 @@ +{ config, pkgs, ... }: with config.krebs.lib; + +pkgs.writeScriptBin "get-ssh-port" '' + #! ${pkgs.dash}/bin/dash + set -efu + if test $# != 1 || test $1 = -h || test $1 = --help; then + echo "usage: get-ssh-port HOSTNAME" >&2 + exit 23 + fi + case $1 in + ${concatMapStringsSep ";;\n" + (host: toString [ + "(${shell.escape host.name})" + "echo ${toString host.nets.${config.krebs.search-domain}.ssh.port}" + ]) + (filter (host: hasAttr config.krebs.search-domain host.nets) + (attrValues config.krebs.hosts)) + };; + ${concatMapStringsSep ";;\n" + (net: toString [ + "(${concatMapStringsSep "|" shell.escape net.aliases})" + "echo ${toString net.ssh.port}" + ]) + (concatMap (host: attrValues host.nets) (attrValues config.krebs.hosts)) + };; + (*) echo "get-ssh-port: don't know ssh port of $1" >&2 + exit 1 + esac +'' |