From cd215753338c9e077516deabac11735dfb624f06 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
Date: Fri, 29 Nov 2019 12:34:31 +0100
Subject: ssh, rsync: support using sudo on remote

This allows deployment of remote hosts without having ssh access to the
root user. Passwordless sudo is recommended since krops will use
multiple ssh sessions and the password will not be remembered.

Closes https://github.com/krebs/krops/issues/3
---
 lib/default.nix | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

(limited to 'lib')

diff --git a/lib/default.nix b/lib/default.nix
index 48e005e..bed284d 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -46,12 +46,13 @@ let {
       default = defVal: val: if val != null then val else defVal;
       parse = lib.match "(([^@]+)@)?(([^:/]+))?(:([^/]+))?(/.*)?" s;
       elemAt' = xs: i: if lib.length xs > i then lib.elemAt xs i else null;
-    in {
+    in if lib.isString s then {
       user = default (lib.getEnv "LOGNAME") (elemAt' parse 1);
       host = default (lib.maybeEnv "HOSTNAME" lib.getHostName) (elemAt' parse 3);
       port = default "22" /* "ssh"? */ (elemAt' parse 5);
       path = default "/var/src" /* no default? */ (elemAt' parse 6);
-    };
+      sudo = false;
+    } else s;
 
     shell = let
       isSafeChar = lib.testString "[-+./0-9:=A-Z_a-z]";
-- 
cgit v1.2.3