mirror of
https://cgit.krebsco.de/krops
synced 2025-01-26 19:05:04 +01:00
isLocalTarget: use "localhost" as default
This fixes an issue when trying to deploy using sudo from systems that don't provide means to determine the real host name.
This commit is contained in:
parent
efe400d87c
commit
c2fa48550f
1 changed files with 12 additions and 5 deletions
|
@ -28,13 +28,20 @@ let {
|
|||
# This function's return value can be used as pkgs.populate input.
|
||||
source: sanitize (eval source).config.source;
|
||||
|
||||
getHostName = let
|
||||
maybeHostName = default: let
|
||||
# We're parsing /etc/hostname here because reading
|
||||
# /proc/sys/kernel/hostname yields ""
|
||||
y = lib.filter lib.types.label.check (lib.splitString "\n" (lib.readFile /etc/hostname));
|
||||
path = "/etc/hostname";
|
||||
lines = lib.splitString "\n" (lib.readFile path);
|
||||
hostNames = lib.filter lib.types.label.check lines;
|
||||
in
|
||||
if lib.length y != 1 then throw "malformed /etc/hostname" else
|
||||
lib.elemAt y 0;
|
||||
if lib.pathExists path then
|
||||
if lib.length hostNames == 1 then
|
||||
lib.head hostNames
|
||||
else
|
||||
lib.trace "malformed ${path}" default
|
||||
else
|
||||
default;
|
||||
|
||||
firstWord = s:
|
||||
lib.head (lib.match "^([^[:space:]]*).*" s);
|
||||
|
@ -51,7 +58,7 @@ let {
|
|||
filterNull = lib.filterAttrs (n: v: v != null);
|
||||
in {
|
||||
user = lib.getEnv "LOGNAME";
|
||||
host = lib.maybeEnv "HOSTNAME" lib.getHostName;
|
||||
host = lib.maybeEnv "HOSTNAME" (lib.maybeHostName "localhost");
|
||||
port = "22";
|
||||
path = "/var/src";
|
||||
sudo = false;
|
||||
|
|
Loading…
Add table
Reference in a new issue