#!/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 persistent hostname # # 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: # Fall back to alternative OS-specific approaches. case $("$__explorer/os") in alpine|archlinux|coreos|debian|devuan|suse|ubuntu) [ -f /etc/hostname ] && cat /etc/hostname ;; suse) [ -f /etc/HOSTNAME ] && cat /etc/HOSTNAME ;; centos|fedora|redhat|scientific) [ -f /etc/sysconfig/network ] \ && (. /etc/sysconfig/network && echo "$HOSTNAME") ;; freebsd) (. /etc/rc.conf && echo "$hostname") ;; netbsd) if grep -q '^hostname=' /etc/rc.conf then (. /etc/rc.conf && echo "$hostname") elif [ -f /etc/myname ] then # Fall back to /etc/myname file cat /etc/myname fi ;; openbsd) cat /etc/myname ;; macosx) scutil --get HostName 2>/dev/null ;; esac