-
Notifications
You must be signed in to change notification settings - Fork 1
/
bashrc_puppet
88 lines (77 loc) · 1.87 KB
/
bashrc_puppet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
find_dir_up() {
local name=$1;
local default="$2";
local required="$3";
if [ -d "./${name}" ]; then
echo "./${name}"; return 0;
else
local path="../${name}"
local loop=0;
local realpath;
while [ $loop -eq 0 ]; do
realpath="`readlink -f $path`";
if [ "${realpath}" == "/${name}" ]; then
loop=1;
fi;
if [ -d $path ]; then
if [[ -z $required || "$realpath" == */$required/* ]]; then
loop=1;
echo "${path}"; return;
fi;
fi;
path="../${path}"
done;
fi;
if [ -n $default ]; then
echo "$default";
fi;
}
detect_module_dir() {
find_dir_up 'modules' '/etc/puppet/modules'
}
detect_manifests_dir() {
find_dir_up 'manifests' "`pwd`" "modules"
}
detect_class_name() {
local name="$1"
local manifests="`find_dir_up 'manifests' '_FAILTRAIN_' 'modules'`";
if [[ "$manifests"x == '_FAILTRAIN_x' ]]; then
echo $name; return 0;
fi;
local manifests_path="`readlink -f $manifests`";
local modulename="`pwd | sed 's@.*/modules/\([^/]\+\)/manifests.*@\1@'`";
if [[ "${modulename}"x == `pwd`x ]]; then
echo "You are in the wrong folder! cd $manifests_path" 1>&2
return 13;
fi;
if `pwd | grep -q "${modulename}/manifests/.*"`; then
modulename=`pwd | sed -e "s@.*/modules/\([^/]\+\)/manifests/\(.*\)@\1::\2@" -e "s@/@::@g"`
fi;
if [ "$name"x == 'initx' ]; then
echo "${modulename}"
else
echo "${modulename}::${name}"
fi;
}
reformat_pp_file() {
if [ -f "$1" ]; then
pp_fix_tabs $1;
pp_strip_trailing_whitespaces $1;
pp_reformat_quotes $1;
else
echo "File '$1' not found.";
return 1;
fi
}
pp_fix_tabs() {
sed -i "s@\t@ @g" $1
}
pp_strip_trailing_whitespaces() {
sed -i "s@\s*\$@@g" $1
}
pp_reformat_quotes() {
local f=$1;
if [ -f $f ]; then
sed -i "s@^\([^']*\)\"\([^\"$]\+\)\"\([^']*\)\$@\1'\2'\3@g" $f;
fi;
}