feat: add port offset handling for auto SSH devices
This commit is contained in:
parent
2c1316a0a6
commit
3385709208
3 changed files with 34 additions and 9 deletions
|
|
@ -53,9 +53,23 @@ let
|
|||
else
|
||||
device.auto_ssh.remotePortMap;
|
||||
|
||||
getPortOffset = device:
|
||||
if !(device ? auto_ssh) then
|
||||
0
|
||||
else if !builtins.isAttrs device.auto_ssh then
|
||||
throw "Device auto_ssh must be an attrset when present."
|
||||
else if !(device.auto_ssh ? portOffset) then
|
||||
0
|
||||
else if !builtins.isInt device.auto_ssh.portOffset then
|
||||
throw "Device auto_ssh.portOffset must be an int."
|
||||
else if device.auto_ssh.portOffset < 0 then
|
||||
throw "Device auto_ssh.portOffset must be >= 0."
|
||||
else
|
||||
device.auto_ssh.portOffset;
|
||||
|
||||
isSafeName = name:
|
||||
builtins.match "^[a-z_][a-z0-9_-]*$" name != null;
|
||||
in
|
||||
{
|
||||
inherit getDevices getAutoSshDevices getAutoSshDomains getAutoSshConfig getRemotePortMap isSafeName;
|
||||
inherit getDevices getAutoSshDevices getAutoSshDomains getAutoSshConfig getRemotePortMap getPortOffset isSafeName;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue