Merge branch 'nogetent-group' into 'master'

[__group] Fall back to /etc files if getent(1) is not available

See merge request ungleich-public/cdist!798
remotes/origin/feature/shell-lib
Darko Poljak 6 years ago
commit 65f9161352
  1. 19
      cdist/conf/type/__group/explorer/group
  2. 30
      cdist/conf/type/__group/explorer/gshadow

@ -1,6 +1,7 @@
#!/bin/sh
#
# 2011-2015 Steven Armstrong (steven-cdist at armstrong.cc)
# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch)
#
# This file is part of cdist.
#
@ -21,7 +22,21 @@
# Get an existing groups group entry.
#
name=$__object_id
not_supported() {
echo "Your operating system ($("$__explorer/os")) is currently not supported." >&2
echo "Cannot extract group information." >&2
echo "Please contribute an implementation for it if you can." >&2
exit 1
}
getent group "$name" || true
name=$__object_id
if command -v getent >/dev/null
then
getent group "$name" || true
elif [ -f /etc/group ]
then
grep "^${name}:" /etc/group || true
else
not_supported
fi

@ -1,6 +1,7 @@
#!/bin/sh
#
# 2011-2015 Steven Armstrong (steven-cdist at armstrong.cc)
# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch)
#
# This file is part of cdist.
#
@ -22,13 +23,28 @@
#
name=$__object_id
os="$("$__explorer/os")"
os=$("$__explorer/os")
case "$os" in
"freebsd"|"netbsd")
echo "$os does not have getent gshadow"
exit 0
;;
not_supported() {
echo "Your operating system ($os) is currently not supported." >&2
echo "Cannot extract group information." >&2
echo "Please contribute an implementation for it if you can." >&2
exit 1
}
case $os in
"freebsd"|"netbsd")
echo "$os does not have getent gshadow" >&2
exit 0
;;
esac
getent gshadow "$name" || true
if command -v getent >/dev/null
then
getent gshadow "$name" || true
elif [ -f /etc/gshadow ]
then
grep "^${name}:" /etc/gshadow || true
else
not_supported
fi

Loading…
Cancel
Save