corl 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +5 -10
- data/Gemfile.lock +13 -11
- data/README.rdoc +1 -1
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/bin/corl +2 -54
- data/bootstrap/bootstrap.sh +91 -0
- data/bootstrap/lib/shell/LICENSE.txt +674 -0
- data/bootstrap/lib/shell/command.sh +214 -0
- data/bootstrap/lib/shell/filesystem.sh +139 -0
- data/bootstrap/lib/shell/load.sh +73 -0
- data/bootstrap/lib/shell/os.sh +67 -0
- data/bootstrap/lib/shell/script.sh +160 -0
- data/bootstrap/lib/shell/starter.sh +64 -0
- data/bootstrap/lib/shell/validators.sh +50 -0
- data/bootstrap/os/ubuntu/00_base.sh +5 -0
- data/bootstrap/os/ubuntu/01_git.sh +5 -0
- data/bootstrap/os/ubuntu/05_ruby.sh +7 -0
- data/bootstrap/os/ubuntu/06_puppet.sh +38 -0
- data/bootstrap/os/ubuntu/10_corl.sh +9 -0
- data/corl.gemspec +61 -124
- data/lib/{corl → CORL}/action/bootstrap.rb +13 -7
- data/lib/CORL/action/exec.rb +39 -0
- data/lib/CORL/action/image.rb +31 -0
- data/lib/{corl → CORL}/action/images.rb +1 -1
- data/lib/CORL/action/lookup.rb +34 -0
- data/lib/{corl → CORL}/action/machines.rb +1 -1
- data/lib/CORL/action/provision.rb +31 -0
- data/lib/{corl → CORL}/action/seed.rb +3 -3
- data/lib/{corl → CORL}/action/spawn.rb +2 -2
- data/lib/CORL/action/start.rb +31 -0
- data/lib/CORL/action/stop.rb +31 -0
- data/lib/{corl → CORL}/configuration/file.rb +1 -1
- data/lib/{corl → CORL}/event/puppet.rb +1 -1
- data/lib/{corl → CORL}/extension/puppetloader.rb +1 -1
- data/lib/{corl → CORL}/machine/fog.rb +3 -3
- data/lib/{corl → CORL}/machine/physical.rb +2 -2
- data/lib/{corl → CORL}/network/default.rb +1 -1
- data/lib/{corl → CORL}/node/aws.rb +0 -4
- data/lib/{corl → CORL}/node/google.rb +0 -4
- data/lib/{corl → CORL}/node/local.rb +1 -1
- data/lib/{corl → CORL}/node/rackspace.rb +0 -4
- data/lib/{corl → CORL}/provisioner/puppetnode.rb +1 -14
- data/lib/{corl → CORL}/provisioner/puppetnode/resource.rb +0 -0
- data/lib/{corl → CORL}/provisioner/puppetnode/resource_group.rb +0 -0
- data/lib/{corl → CORL}/template/environment.rb +1 -1
- data/lib/core/facade.rb +49 -0
- data/lib/{corl_core → core}/mixin/action/keypair.rb +10 -10
- data/lib/{corl_core → core}/mixin/lookup.rb +0 -0
- data/lib/{corl_core → core}/mod/hiera_backend.rb +0 -0
- data/lib/{corl_core/mixin/action/node.rb → core/plugin/action.rb} +66 -33
- data/lib/{corl_core → core}/plugin/configuration.rb +2 -2
- data/lib/{corl/node → core/plugin}/fog.rb +5 -1
- data/lib/{corl_core → core}/plugin/machine.rb +2 -2
- data/lib/{corl_core → core}/plugin/network.rb +4 -4
- data/lib/{corl_core → core}/plugin/node.rb +11 -9
- data/lib/{corl_core → core}/plugin/provisioner.rb +2 -2
- data/lib/{corl_core → core}/util/ssh.rb +1 -1
- data/lib/corl.rb +53 -112
- data/lib/puppet/parser/functions/ensure.rb +0 -4
- data/locales/en.yml +55 -148
- metadata +84 -222
- data/lib/corl/action/add.rb +0 -69
- data/lib/corl/action/clone.rb +0 -40
- data/lib/corl/action/create.rb +0 -55
- data/lib/corl/action/exec.rb +0 -41
- data/lib/corl/action/extract.rb +0 -49
- data/lib/corl/action/image.rb +0 -30
- data/lib/corl/action/lookup.rb +0 -35
- data/lib/corl/action/provision.rb +0 -37
- data/lib/corl/action/remove.rb +0 -51
- data/lib/corl/action/save.rb +0 -53
- data/lib/corl/action/start.rb +0 -37
- data/lib/corl/action/stop.rb +0 -30
- data/lib/corl/action/update.rb +0 -37
- data/lib/corl/command/shell.rb +0 -164
- data/lib/corl/event/regex.rb +0 -52
- data/lib/corl/project/git.rb +0 -465
- data/lib/corl/project/github.rb +0 -108
- data/lib/corl/template/json.rb +0 -16
- data/lib/corl/template/wrapper.rb +0 -16
- data/lib/corl/template/yaml.rb +0 -16
- data/lib/corl/translator/json.rb +0 -27
- data/lib/corl/translator/yaml.rb +0 -27
- data/lib/corl_core/codes.rb +0 -107
- data/lib/corl_core/config.rb +0 -337
- data/lib/corl_core/config/collection.rb +0 -57
- data/lib/corl_core/config/options.rb +0 -70
- data/lib/corl_core/core.rb +0 -59
- data/lib/corl_core/corl.rb +0 -254
- data/lib/corl_core/errors.rb +0 -84
- data/lib/corl_core/facade.rb +0 -126
- data/lib/corl_core/gems.rb +0 -72
- data/lib/corl_core/manager.rb +0 -425
- data/lib/corl_core/mixin/action/commit.rb +0 -58
- data/lib/corl_core/mixin/action/project.rb +0 -53
- data/lib/corl_core/mixin/action/push.rb +0 -52
- data/lib/corl_core/mixin/config/collection.rb +0 -53
- data/lib/corl_core/mixin/config/ops.rb +0 -53
- data/lib/corl_core/mixin/config/options.rb +0 -39
- data/lib/corl_core/mixin/macro/object_interface.rb +0 -361
- data/lib/corl_core/mixin/macro/plugin_interface.rb +0 -380
- data/lib/corl_core/mixin/settings.rb +0 -46
- data/lib/corl_core/mixin/sub_config.rb +0 -148
- data/lib/corl_core/mod/hash.rb +0 -29
- data/lib/corl_core/plugin/action.rb +0 -381
- data/lib/corl_core/plugin/base.rb +0 -374
- data/lib/corl_core/plugin/command.rb +0 -98
- data/lib/corl_core/plugin/event.rb +0 -53
- data/lib/corl_core/plugin/extension.rb +0 -12
- data/lib/corl_core/plugin/project.rb +0 -927
- data/lib/corl_core/plugin/template.rb +0 -80
- data/lib/corl_core/plugin/translator.rb +0 -38
- data/lib/corl_core/util/cli.rb +0 -352
- data/lib/corl_core/util/data.rb +0 -404
- data/lib/corl_core/util/disk.rb +0 -114
- data/lib/corl_core/util/git.rb +0 -47
- data/lib/corl_core/util/interface.rb +0 -319
- data/lib/corl_core/util/liquid.rb +0 -17
- data/lib/corl_core/util/package.rb +0 -93
- data/lib/corl_core/util/shell.rb +0 -239
- data/spec/corl_core/interface_spec.rb +0 -489
@@ -0,0 +1,214 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
#
|
3
|
+
# command.sh
|
4
|
+
#
|
5
|
+
#-------------------------------------------------------------------------------
|
6
|
+
# Convert parameters into newline separated sections and apply other
|
7
|
+
# normalizations.
|
8
|
+
#
|
9
|
+
# This way we can avoid problems with quote expansion when passing parameters
|
10
|
+
# around.
|
11
|
+
#
|
12
|
+
# USAGE:> PARAMS=`normalize_params "$@"`
|
13
|
+
#
|
14
|
+
function normalize_params()
|
15
|
+
{
|
16
|
+
local PARAMS=''
|
17
|
+
|
18
|
+
for PARAM in "$@"
|
19
|
+
do
|
20
|
+
# Split single character flags
|
21
|
+
if [[ $PARAM =~ ^-([A-Za-z0-9]{2,})$ ]]
|
22
|
+
then
|
23
|
+
BLOB=${BASH_REMATCH[1]}
|
24
|
+
for ((i=0; i<${#BLOB}; i++)); do
|
25
|
+
PARAMS="${PARAMS}-${BLOB:$i:1}"$'\n'
|
26
|
+
done
|
27
|
+
# Split equal '=' assignments
|
28
|
+
elif [[ $PARAM =~ ^(--?[A-Za-z0-9_-]+)\=(.+)$ ]]
|
29
|
+
then
|
30
|
+
PARAMS="${PARAMS}${BASH_REMATCH[1]}"$'\n'
|
31
|
+
PARAMS="${PARAMS}${BASH_REMATCH[2]}"$'\n'
|
32
|
+
else
|
33
|
+
PARAMS="${PARAMS}${PARAM}"$'\n'
|
34
|
+
fi
|
35
|
+
done
|
36
|
+
|
37
|
+
echo "$PARAMS"
|
38
|
+
return 0
|
39
|
+
}
|
40
|
+
|
41
|
+
#-------------------------------------------------------------------------------
|
42
|
+
# Return whether or not parameters have a particular flag enabled.
|
43
|
+
#
|
44
|
+
# USAGE:> parse_flag $FLAG FOUND_REF
|
45
|
+
#
|
46
|
+
# Note: Needs [ PARAMS="$@" ] defined in the calling function.
|
47
|
+
# The flag is removed from this variable.
|
48
|
+
#
|
49
|
+
function parse_flag()
|
50
|
+
{
|
51
|
+
local FLAGS="$1"
|
52
|
+
local FOUND="$2"
|
53
|
+
|
54
|
+
local LOCAL_FOUND=''
|
55
|
+
|
56
|
+
local ALT_PARAMS=''
|
57
|
+
local IFS_ORIG="$IFS"
|
58
|
+
|
59
|
+
IFS='|'
|
60
|
+
read -ra FLAG_ARRAY <<< "$FLAGS"
|
61
|
+
|
62
|
+
IFS=$'\n'
|
63
|
+
for PARAM in $PARAMS # $PARAMS is not a local variable
|
64
|
+
do
|
65
|
+
# echo "PARAM = $PARAM"
|
66
|
+
for FLAG in "${FLAG_ARRAY[@]}"
|
67
|
+
do
|
68
|
+
if [ "$PARAM" = "$FLAG" ]
|
69
|
+
then
|
70
|
+
eval $FOUND="$PARAM" # Notify parent script that flag was found.
|
71
|
+
LOCAL_FOUND='1'
|
72
|
+
|
73
|
+
# echo "Flag $FLAG found."
|
74
|
+
break
|
75
|
+
fi
|
76
|
+
done
|
77
|
+
|
78
|
+
if [ ! "$LOCAL_FOUND" ]
|
79
|
+
then
|
80
|
+
ALT_PARAMS="${ALT_PARAMS}${PARAM}"$'\n'
|
81
|
+
# echo "ALT_PARAMS = $ALT_PARAMS"
|
82
|
+
fi
|
83
|
+
|
84
|
+
LOCAL_FOUND=''
|
85
|
+
done
|
86
|
+
|
87
|
+
PARAMS=$ALT_PARAMS # Reassign to calling function params.
|
88
|
+
IFS="$IFS_ORIG"
|
89
|
+
return 0
|
90
|
+
}
|
91
|
+
|
92
|
+
#-------------------------------------------------------------------------------
|
93
|
+
# Return whether or not parameters have a particular option specified.
|
94
|
+
#
|
95
|
+
# USAGE:> parse_option $OPTION VALUE_REF $VALIDATOR_FUNC $ERROR_MSG
|
96
|
+
#
|
97
|
+
# Note: Needs [ PARAMS="$@" ] defined in the calling function.
|
98
|
+
# The option and value are removed from this variable.
|
99
|
+
#
|
100
|
+
function parse_option()
|
101
|
+
{
|
102
|
+
local OPTIONS="$1"
|
103
|
+
local VALUE="$2"
|
104
|
+
local VALIDATOR="$3"
|
105
|
+
local ERROR_MSG="$4"
|
106
|
+
|
107
|
+
if [ ! "$VALIDATOR" ]
|
108
|
+
then
|
109
|
+
VALIDATOR='validate_string' # Default option value is non empty string
|
110
|
+
fi
|
111
|
+
|
112
|
+
local ALT_PARAMS=''
|
113
|
+
local IFS_ORIG="$IFS"
|
114
|
+
|
115
|
+
local OPTION_FOUND=''
|
116
|
+
local VALUE_FOUND=''
|
117
|
+
local NEEDS_PROCESSING=''
|
118
|
+
|
119
|
+
IFS='|'
|
120
|
+
read -ra OPTION_ARRAY <<< "$OPTIONS"
|
121
|
+
|
122
|
+
IFS=$'\n'
|
123
|
+
for PARAM in $PARAMS # $PARAMS is not a local variable
|
124
|
+
do
|
125
|
+
#echo "PARAM = $PARAM"
|
126
|
+
if [ "$NEEDS_PROCESSING" ]
|
127
|
+
then
|
128
|
+
#echo "OPTION FOUND - Retreiving Value"
|
129
|
+
if [[ $PARAM =~ ^- ]]
|
130
|
+
then
|
131
|
+
ERROR_MSG=`echo "Parameter [ $OPTIONS ] (empty): $ERROR_MSG"`
|
132
|
+
echo "$ERROR_MSG"
|
133
|
+
|
134
|
+
IFS="$IFS_ORIG"
|
135
|
+
return 1
|
136
|
+
fi
|
137
|
+
|
138
|
+
if [ "$VALIDATOR" ]
|
139
|
+
then
|
140
|
+
#echo "$VALIDATOR '$PARAM'"
|
141
|
+
if ! $VALIDATOR "$PARAM"
|
142
|
+
then
|
143
|
+
ERROR_MSG=`echo "Parameter [ $OPTIONS ] ($PARAM): $ERROR_MSG"`
|
144
|
+
echo "$ERROR_MSG"
|
145
|
+
return 1
|
146
|
+
fi
|
147
|
+
fi
|
148
|
+
eval $VALUE="'$PARAM'" # Notify parent script that option was found.
|
149
|
+
VALUE_FOUND='1'
|
150
|
+
NEEDS_PROCESSING=''
|
151
|
+
continue
|
152
|
+
fi
|
153
|
+
|
154
|
+
for OPTION in "${OPTION_ARRAY[@]}"
|
155
|
+
do
|
156
|
+
#echo "OPTION = $OPTION"
|
157
|
+
if [ "$PARAM" = "$OPTION" ]
|
158
|
+
then
|
159
|
+
#echo "OPTION FOUND - Setting Flag"
|
160
|
+
OPTION_FOUND='1'
|
161
|
+
NEEDS_PROCESSING='1'
|
162
|
+
break
|
163
|
+
fi
|
164
|
+
done
|
165
|
+
|
166
|
+
if [ ! "$NEEDS_PROCESSING" ]
|
167
|
+
then
|
168
|
+
ALT_PARAMS="${ALT_PARAMS}${PARAM}"$'\n'
|
169
|
+
#echo "ALT_PARAMS = $ALT_PARAMS"
|
170
|
+
fi
|
171
|
+
done
|
172
|
+
|
173
|
+
# Check if we have a value.
|
174
|
+
if [ "$OPTION_FOUND" -a ! "$VALUE_FOUND" ]
|
175
|
+
then
|
176
|
+
ERROR_MSG=`echo "Parameter [ $OPTIONS ] (empty): $ERROR_MSG"`
|
177
|
+
echo "$ERROR_MSG"
|
178
|
+
|
179
|
+
IFS="$IFS_ORIG"
|
180
|
+
return 1
|
181
|
+
fi
|
182
|
+
|
183
|
+
PARAMS=$ALT_PARAMS # Reassign to calling function params.
|
184
|
+
IFS="$IFS_ORIG"
|
185
|
+
return 0
|
186
|
+
}
|
187
|
+
|
188
|
+
#-------------------------------------------------------------------------------
|
189
|
+
# Returns all non dashed arguments from list of parameters.
|
190
|
+
#
|
191
|
+
# This should be run after all flags and options have been parsed.
|
192
|
+
#
|
193
|
+
# USAGE:> ARGS=`get_args "$PARAMS"`
|
194
|
+
#
|
195
|
+
function get_args()
|
196
|
+
{
|
197
|
+
local ARGS=()
|
198
|
+
local IFS_ORIG="$IFS"
|
199
|
+
|
200
|
+
IFS=$'\n'
|
201
|
+
for PARAM in $@
|
202
|
+
do
|
203
|
+
#echo "$PARAM"
|
204
|
+
# No options allowed
|
205
|
+
if [[ $PARAM =~ ^[^-] ]]
|
206
|
+
then
|
207
|
+
ARGS=("${ARGS[@]}" "$PARAM")
|
208
|
+
fi
|
209
|
+
done
|
210
|
+
|
211
|
+
echo "$ARGS"
|
212
|
+
IFS="$IFS_ORIG"
|
213
|
+
return 0
|
214
|
+
}
|
@@ -0,0 +1,139 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
#
|
3
|
+
# filesystem.sh
|
4
|
+
#
|
5
|
+
#-------------------------------------------------------------------------------
|
6
|
+
# Transfer one directory to another. (NON DESTRUCTIVE)
|
7
|
+
#
|
8
|
+
# USAGE:> transfer_directory [ --sudo ][ --force ] $ORIGIN_DIR $DEST_DIR
|
9
|
+
#
|
10
|
+
function transfer_directory()
|
11
|
+
{
|
12
|
+
local PARAMS=`normalize_params "$@"`
|
13
|
+
local SUDO_ENABLED=''
|
14
|
+
local FORCE_OVERWRITE=''
|
15
|
+
|
16
|
+
parse_flag '-s|--sudo' SUDO_ENABLED || return 1
|
17
|
+
parse_flag '-f|--force' FORCE_OVERWRITE || return 2
|
18
|
+
|
19
|
+
local ARGS=`get_args "$PARAMS"`
|
20
|
+
local ORIGIN_DIR="${ARGS[0]}"
|
21
|
+
local DEST_DIR="${ARGS[1]}"
|
22
|
+
|
23
|
+
# echo "PARAMS = $@"
|
24
|
+
# echo "ORIGIN_DIR = $ORIGIN_DIR"
|
25
|
+
# echo "DEST_DIR = $DEST_DIR"
|
26
|
+
# echo "SUDO_ENABLED = $SUDO_ENABLED"
|
27
|
+
|
28
|
+
if [ "$ORIGIN_DIR" != "$DEST_DIR" ]
|
29
|
+
then
|
30
|
+
if [ "$FORCE_OVERWRITE" -o ! -d "$DEST_DIR" ]
|
31
|
+
then
|
32
|
+
echo "Transfering $ORIGIN_DIR to $DEST_DIR."
|
33
|
+
|
34
|
+
if [ "$SUDO_ENABLED" ]
|
35
|
+
then
|
36
|
+
# echo "SUDO enabled."
|
37
|
+
if [ "$FORCE_OVERWRITE" ]
|
38
|
+
then
|
39
|
+
echo "Removing existing directory: $DEST_DIR (as admin)."
|
40
|
+
sudo rm -Rf "$DEST_DIR"
|
41
|
+
fi
|
42
|
+
echo "Copying $ORIGIN_DIR to $DEST_DIR (as admin)."
|
43
|
+
sudo cp -Rf "$ORIGIN_DIR" "$DEST_DIR"
|
44
|
+
else
|
45
|
+
if [ "$FORCE_OVERWRITE" ]
|
46
|
+
then
|
47
|
+
echo "Removing existing directory: $DEST_DIR."
|
48
|
+
rm -Rf "$DEST_DIR"
|
49
|
+
fi
|
50
|
+
echo "Copying $ORIGIN_DIR to $DEST_DIR."
|
51
|
+
cp -Rf "$ORIGIN_DIR" "$DEST_DIR"
|
52
|
+
fi
|
53
|
+
else
|
54
|
+
echo "Directory $DEST_DIR already exists. If you wish to replace it, delete it first."
|
55
|
+
return 3
|
56
|
+
fi
|
57
|
+
fi
|
58
|
+
return 0
|
59
|
+
}
|
60
|
+
|
61
|
+
#-------------------------------------------------------------------------------
|
62
|
+
# Change permissions on all directories under a base directory.
|
63
|
+
#
|
64
|
+
# USAGE:> directory_access [ --sudo ] $BASE_DIR $PERM
|
65
|
+
#
|
66
|
+
function directory_access()
|
67
|
+
{
|
68
|
+
local PARAMS=`normalize_params "$@"`
|
69
|
+
local SUDO_ENABLED=''
|
70
|
+
|
71
|
+
parse_flag "-s|--sudo" SUDO_ENABLED || return 1
|
72
|
+
|
73
|
+
local ARGS=`get_args "$PARAMS"`
|
74
|
+
local BASE_DIR="${ARGS[0]}"
|
75
|
+
local PERM="${ARGS[1]}"
|
76
|
+
|
77
|
+
if [ "$SUDO_ENABLED" ]
|
78
|
+
then
|
79
|
+
echo "Adjusting permissions for all directories under $BASE_DIR to $PERM (as admin)."
|
80
|
+
sudo find "$BASE_DIR" -type d -exec chmod "$PERM" {} \; || return 2
|
81
|
+
else
|
82
|
+
echo "Adjusting permissions for all directories under $BASE_DIR to $PERM."
|
83
|
+
find "$BASE_DIR" -type d -exec chmod "$PERM" {} \; || return 2
|
84
|
+
fi
|
85
|
+
}
|
86
|
+
|
87
|
+
#-------------------------------------------------------------------------------
|
88
|
+
# Change permissions on all files under a base directory.
|
89
|
+
#
|
90
|
+
# USAGE:> file_access [ --sudo ] $BASE_DIR $PERM
|
91
|
+
#
|
92
|
+
function file_access()
|
93
|
+
{
|
94
|
+
local PARAMS=`normalize_params "$@"`
|
95
|
+
local SUDO_ENABLED=''
|
96
|
+
|
97
|
+
parse_flag "-s|--sudo" SUDO_ENABLED || return 1
|
98
|
+
|
99
|
+
local ARGS=`get_args "$PARAMS"`
|
100
|
+
local BASE_DIR="${ARGS[0]}"
|
101
|
+
local PERM="${ARGS[1]}"
|
102
|
+
|
103
|
+
if [ "$SUDO_ENABLED" ]
|
104
|
+
then
|
105
|
+
echo "Adjusting permissions for all files under $BASE_DIR to $PERM (as admin)."
|
106
|
+
sudo find "$BASE_DIR" -type f -exec chmod "$PERM" {} \; || return 2
|
107
|
+
else
|
108
|
+
echo "Adjusting permissions for all files under $BASE_DIR to $PERM."
|
109
|
+
find "$BASE_DIR" -type f -exec chmod "$PERM" {} \; || return 2
|
110
|
+
fi
|
111
|
+
}
|
112
|
+
|
113
|
+
#-------------------------------------------------------------------------------
|
114
|
+
# Change permissions on all files or directories matching a specified pattern
|
115
|
+
# under a base directory.
|
116
|
+
#
|
117
|
+
# USAGE:> pattern_access [ --sudo ] $BASE_DIR $PATTERN $PERM
|
118
|
+
#
|
119
|
+
function pattern_access()
|
120
|
+
{
|
121
|
+
local PARAMS=`normalize_params "$@"`
|
122
|
+
local SUDO_ENABLED=''
|
123
|
+
|
124
|
+
parse_flag "-s|--sudo" SUDO_ENABLED || return 1
|
125
|
+
|
126
|
+
local ARGS=`get_args "$PARAMS"`
|
127
|
+
local BASE_DIR="${ARGS[0]}"
|
128
|
+
local PATTERN="${ARGS[1]//\'/}"
|
129
|
+
local PERM="${ARGS[2]}"
|
130
|
+
|
131
|
+
if [ "$SUDO_ENABLED" ]
|
132
|
+
then
|
133
|
+
echo "Adjusting permissions for all files or directories under $BASE_DIR matching $PATTERN to $PERM (as admin)."
|
134
|
+
sudo find "$BASE_DIR" -name "$PATTERN" -exec chmod "$PERM" {} \; || return 2
|
135
|
+
else
|
136
|
+
echo "Adjusting permissions for all files or directories under $BASE_DIR matching $PATTERN to $PERM."
|
137
|
+
find "$BASE_DIR" -name "$PATTERN" -exec chmod "$PERM" {} \; || return 2
|
138
|
+
fi
|
139
|
+
}
|
@@ -0,0 +1,73 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
#
|
3
|
+
# load.sh
|
4
|
+
#
|
5
|
+
#-------------------------------------------------------------------------------
|
6
|
+
# Shared functions
|
7
|
+
|
8
|
+
#-------------------------------------------------------------------------------
|
9
|
+
# Get the directory of the command passed via the first parameter.
|
10
|
+
#
|
11
|
+
# USAGE:> SCRIPT_DIR=`get_command_location $0`
|
12
|
+
#
|
13
|
+
function get_command_location()
|
14
|
+
{
|
15
|
+
local SCRIPT_DIR="$(cd "$(dirname "$([ `readlink "$1"` ] && echo "`readlink "$1"`" || echo "$1")")"; pwd -P)"
|
16
|
+
|
17
|
+
# Return the final directory found.
|
18
|
+
echo "$SCRIPT_DIR"
|
19
|
+
return 0
|
20
|
+
}
|
21
|
+
|
22
|
+
#-------------------------------------------------------------------------------
|
23
|
+
# Initialization
|
24
|
+
|
25
|
+
if [ ! -d "$SHELL_LIB_DIR" ]
|
26
|
+
then
|
27
|
+
SHELL_LIB_DIR=`get_command_location $0`
|
28
|
+
fi
|
29
|
+
|
30
|
+
#-------------------------------------------------------------------------------
|
31
|
+
|
32
|
+
# Load command utilities. This should always be loaded first.
|
33
|
+
COMMON_COMMAND="$SHELL_LIB_DIR/command.sh"
|
34
|
+
|
35
|
+
if [ -f "$COMMON_COMMAND" ]
|
36
|
+
then
|
37
|
+
source "$COMMON_COMMAND"
|
38
|
+
fi
|
39
|
+
|
40
|
+
# Load os utilities.
|
41
|
+
COMMON_OS="$SHELL_LIB_DIR/os.sh"
|
42
|
+
|
43
|
+
if [ -f "$COMMON_OS" ]
|
44
|
+
then
|
45
|
+
source "$COMMON_OS"
|
46
|
+
os_info
|
47
|
+
fi
|
48
|
+
|
49
|
+
# Load file system utilities.
|
50
|
+
COMMON_FILESYSTEM="$SHELL_LIB_DIR/filesystem.sh"
|
51
|
+
|
52
|
+
if [ -f "$COMMON_FILESYSTEM" ]
|
53
|
+
then
|
54
|
+
source "$COMMON_FILESYSTEM"
|
55
|
+
fi
|
56
|
+
|
57
|
+
# Load script utilities.
|
58
|
+
COMMON_SCRIPT="$SHELL_LIB_DIR/script.sh"
|
59
|
+
|
60
|
+
if [ -f "$COMMON_SCRIPT" ]
|
61
|
+
then
|
62
|
+
source "$COMMON_SCRIPT"
|
63
|
+
fi
|
64
|
+
|
65
|
+
#-------------------------------------------------------------------------------
|
66
|
+
|
67
|
+
# Load any validators used in parse_option() calls.
|
68
|
+
COMMON_VALIDATORS="$SHELL_LIB_DIR/validators.sh"
|
69
|
+
|
70
|
+
if [ -f "$COMMON_VALIDATORS" ]
|
71
|
+
then
|
72
|
+
source "$COMMON_VALIDATORS"
|
73
|
+
fi
|
@@ -0,0 +1,67 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
#
|
3
|
+
# os.sh
|
4
|
+
#
|
5
|
+
# Most of this file is currently derived from:
|
6
|
+
#
|
7
|
+
# https://github.com/coto/server-easy-install/blob/master/lib/core.sh
|
8
|
+
#
|
9
|
+
#-------------------------------------------------------------------------------
|
10
|
+
|
11
|
+
function os_info() {
|
12
|
+
OS=`lowercase \`uname\``
|
13
|
+
KERNEL=`uname -r`
|
14
|
+
MACHINE=`uname -m`
|
15
|
+
|
16
|
+
#---
|
17
|
+
|
18
|
+
if [ "{$OS}" == "windowsnt" ]
|
19
|
+
then
|
20
|
+
OS=windows
|
21
|
+
|
22
|
+
elif [ "{$OS}" == "darwin" ]
|
23
|
+
then
|
24
|
+
OS=mac
|
25
|
+
else
|
26
|
+
if [ "${OS}" = "linux" ]
|
27
|
+
then
|
28
|
+
if [ -f /etc/redhat-release ]
|
29
|
+
then
|
30
|
+
OS=`cat /etc/redhat-release |sed s/\ release.*//`
|
31
|
+
OS_NAME=`cat /etc/redhat-release | sed s/.*\(// | sed s/\)//`
|
32
|
+
OS_VERSION=`cat /etc/redhat-release | sed s/.*release\ // | sed s/\ .*//`
|
33
|
+
|
34
|
+
elif [ -f /etc/SuSE-release ]
|
35
|
+
then
|
36
|
+
OS=suse
|
37
|
+
OS_NAME=`cat /etc/SuSE-release | tr "\n" ' '| sed s/VERSION.*//`
|
38
|
+
OS_VERSION=`cat /etc/SuSE-release | tr "\n" ' ' | sed s/.*=\ //`
|
39
|
+
|
40
|
+
elif [ -f /etc/mandrake-release ]
|
41
|
+
then
|
42
|
+
OS=mandriva
|
43
|
+
OS_NAME=`cat /etc/mandrake-release | sed s/.*\(// | sed s/\)//`
|
44
|
+
OS_VERSION=`cat /etc/mandrake-release | sed s/.*release\ // | sed s/\ .*//`
|
45
|
+
|
46
|
+
elif [ -f /etc/debian_version ]
|
47
|
+
then
|
48
|
+
DIST=`cat /etc/lsb-release | grep '^DISTRIB_ID' | awk -F= '{ print $2 }'`
|
49
|
+
OS_NAME=`cat /etc/lsb-release | grep '^DISTRIB_CODENAME' | awk -F= '{ print $2 }'`
|
50
|
+
OS_VERSION=`cat /etc/lsb-release | grep '^DISTRIB_RELEASE' | awk -F= '{ print $2 }'`
|
51
|
+
fi
|
52
|
+
if [ -f /etc/UnitedLinux-release ]
|
53
|
+
then
|
54
|
+
DIST="${DIST}[`cat /etc/UnitedLinux-release | tr "\n" ' ' | sed s/VERSION.*//`]"
|
55
|
+
fi
|
56
|
+
OS=`lowercase "$DIST"`
|
57
|
+
fi
|
58
|
+
fi
|
59
|
+
}
|
60
|
+
|
61
|
+
#-------------------------------------------------------------------------------
|
62
|
+
# Utilities
|
63
|
+
|
64
|
+
function lowercase() {
|
65
|
+
echo "$1" | sed "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/"
|
66
|
+
}
|
67
|
+
|