From 81ba849af8340ff3d59646d602a429b9170b9701 Mon Sep 17 00:00:00 2001 From: Dennis Camera Date: Thu, 3 Oct 2019 19:19:06 +0200 Subject: [PATCH] Move __hostname hostname explorer to global scope --- cdist/conf/explorer/hostname | 24 ++++++++-- cdist/conf/type/__hostname/explorer/hostname | 48 ------------------- .../__hostname/explorer/hostname_sysconfig | 2 +- 3 files changed, 21 insertions(+), 53 deletions(-) delete mode 100644 cdist/conf/type/__hostname/explorer/hostname diff --git a/cdist/conf/explorer/hostname b/cdist/conf/explorer/hostname index 7715c6b0..13ac91c2 100755 --- a/cdist/conf/explorer/hostname +++ b/cdist/conf/explorer/hostname @@ -1,7 +1,6 @@ #!/bin/sh # -# 2010-2014 Nico Schottelius (nico-cdist at schottelius.org) -# 2012 Steven Armstrong (steven-cdist at armstrong.cc) +# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) # # This file is part of cdist. # @@ -19,7 +18,24 @@ # along with cdist. If not, see . # # +# Retrieve the running hostname +# -if command -v uname >/dev/null; then - uname -n +# Firstly, check hostnamectl if available. +if command -v hostnamectl >/dev/null +then + hostnamectl status --static && exit 0 +fi + +# In case hostnamectl is missing or failed: +# We fall back to alternative approaches +if [ "$(uname -s)" = Darwin ] && command -v scutil >/dev/null +then + # Mac OS X + scutil --get HostName 2>/dev/null +elif command -v hostname >/dev/null +then + hostname -s +else + uname -n fi diff --git a/cdist/conf/type/__hostname/explorer/hostname b/cdist/conf/type/__hostname/explorer/hostname deleted file mode 100644 index 8aab1ec0..00000000 --- a/cdist/conf/type/__hostname/explorer/hostname +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -# -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Retrieve the running hostname -# - -# Firstly, check hostnamectl if available. -if command -v hostnamectl >/dev/null -then - hostnamectl --static && exit 0 -fi - - -# Almost any distribution -if [ -f /etc/hostname ]; then - cat /etc/hostname -# SuSE -elif [ -f /etc/HOSTNAME ]; then - cat /etc/HOSTNAME -# OpenBSD -elif [ -f /etc/myname ]; then - cat /etc/myname -# FreeBSD -elif [ "$(uname -s)" == FreeBSD ]; then - (. /etc/rc.conf && echo $hostname) -# Mac OS X -elif [ "$(uname -s)" == Darwin ]; then - [ -x "$(command -v scutil)" ] && scutil --get HostName 2>/dev/null || hostname -s -else - command -v hostname && hostname -s -fi diff --git a/cdist/conf/type/__hostname/explorer/hostname_sysconfig b/cdist/conf/type/__hostname/explorer/hostname_sysconfig index d0d7b4e7..4d6b8513 100755 --- a/cdist/conf/type/__hostname/explorer/hostname_sysconfig +++ b/cdist/conf/type/__hostname/explorer/hostname_sysconfig @@ -18,7 +18,7 @@ # along with cdist. If not, see . # # -# Retrieve the contents of /etc/hostname +# Retrieve the contents of /etc/sysconfig/network # if [ -f /etc/sysconfig/network ]; then