Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>remotes/origin/feature_files_export
parent
7a1f81dc7b
commit
03cc2a63b1
@ -0,0 +1,42 @@ |
||||
cdist-type__autofs(7) |
||||
===================== |
||||
Steven Armstrong <steven-cdist--@--armstrong.cc> |
||||
|
||||
|
||||
NAME |
||||
---- |
||||
cdist-type__autofs - install and start autofs |
||||
|
||||
|
||||
DESCRIPTION |
||||
----------- |
||||
This space intentionally left blank. |
||||
|
||||
|
||||
REQUIRED PARAMETERS |
||||
------------------- |
||||
None. |
||||
|
||||
|
||||
OPTIONAL PARAMETERS |
||||
------------------- |
||||
None. |
||||
|
||||
|
||||
EXAMPLES |
||||
-------- |
||||
|
||||
-------------------------------------------------------------------------------- |
||||
__autofs |
||||
-------------------------------------------------------------------------------- |
||||
|
||||
|
||||
SEE ALSO |
||||
-------- |
||||
- cdist-type(7) |
||||
|
||||
|
||||
COPYING |
||||
------- |
||||
Copyright \(C) 2012 Steven Armstrong. Free use of this software is |
||||
granted under the terms of the GNU General Public License version 3 (GPLv3). |
@ -0,0 +1,50 @@ |
||||
#!/bin/sh |
||||
# |
||||
# 2011 - 2012 Steven Armstrong (steven-cdist at armstrong.cc) |
||||
# |
||||
# 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 <http://www.gnu.org/licenses/>. |
||||
# |
||||
|
||||
candidates="/etc/auto.master /etc/autofs/auto.master" |
||||
find_auto_master() { |
||||
# get the path of the auto.master file |
||||
for candidate in $candidates; do |
||||
if [ -f "$candidate" ]; then |
||||
echo "$candidate" |
||||
return |
||||
fi |
||||
done |
||||
} |
||||
|
||||
auto_master="$(find_auto_master)" |
||||
|
||||
# no auto.master, nothing we could do |
||||
[ -f "$auto_master" ] || exit 0 |
||||
|
||||
# NOTE: keep variables in sync in manifest/explorer/gencode-* |
||||
prefix="#cdist:$__object_name" |
||||
suffix="#/cdist:$__object_name" |
||||
awk -v prefix="$prefix" -v suffix="$suffix" '{ |
||||
if (index($0,prefix)) { |
||||
triggered=1 |
||||
} |
||||
if (triggered) { |
||||
if (index($0,suffix)) { |
||||
triggered=0 |
||||
} |
||||
print |
||||
} |
||||
}' "$auto_master" |
@ -0,0 +1,93 @@ |
||||
#!/bin/sh |
||||
# |
||||
# 2011 - 2012 Steven Armstrong (steven-cdist at armstrong.cc) |
||||
# |
||||
# 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 <http://www.gnu.org/licenses/>. |
||||
# |
||||
|
||||
entry="$__object/files/entry" |
||||
state_should="$(cat "$__object/parameter/state" 2>/dev/null || echo present)" |
||||
if [ ! -s "$__object/explorer/entry" ]; then |
||||
state_is='absent' |
||||
else |
||||
state_is=$(diff -q "$entry" "$__object/explorer/entry" >/dev/null \ |
||||
&& echo present \ |
||||
|| echo changed |
||||
) |
||||
fi |
||||
|
||||
if [ "$state_should" = "$state_is" ]; then |
||||
# Nothing to do, move along |
||||
exit 0 |
||||
fi |
||||
|
||||
cat << DONE |
||||
candidates="/etc/auto.master /etc/autofs/auto.master" |
||||
find_auto_master() { |
||||
# get the path of the auto.master file |
||||
for candidate in \$candidates; do |
||||
if [ -f "\$candidate" ]; then |
||||
echo "\$candidate" |
||||
return |
||||
fi |
||||
done |
||||
} |
||||
|
||||
auto_master="\$(find_auto_master)" |
||||
|
||||
if [ ! -f "\$auto_master" ]; then |
||||
echo "Could not determine auto.master location, tried: \$candidates" >&2 |
||||
exit 1 |
||||
fi |
||||
DONE |
||||
|
||||
remove_entry() { |
||||
# NOTE: keep variables in sync in manifest/explorer/gencode-* |
||||
prefix="#cdist:$__object_name" |
||||
suffix="#/cdist:$__object_name" |
||||
cat << DONE |
||||
awk -v prefix="$prefix" -v suffix="$suffix" ' |
||||
{ |
||||
if (index(\$0,prefix)) { |
||||
triggered=1 |
||||
} |
||||
if (triggered) { |
||||
if (index(\$0,suffix)) { |
||||
triggered=0 |
||||
} |
||||
} else { |
||||
print |
||||
} |
||||
}' "\$auto_master" > "\$auto_master"+ |
||||
mv -f "\$auto_master"+ "\$auto_master" |
||||
DONE |
||||
} |
||||
|
||||
case "$state_should" in |
||||
present) |
||||
if [ "$state_is" = "changed" ]; then |
||||
remove_entry |
||||
fi |
||||
cat << DONE |
||||
cat >> "\$auto_master" << EOC |
||||
$(cat "$entry") |
||||
EOC |
||||
DONE |
||||
;; |
||||
absent) |
||||
remove_entry |
||||
;; |
||||
esac |
@ -0,0 +1 @@ |
||||
noreload |
@ -1,3 +0,0 @@ |
||||
# Generated from cdist __autofs_master |
||||
# Do not change this file. Changes will be overwritten. |
||||
|
@ -1 +0,0 @@ |
||||
header |
Loading…
Reference in new issue