corl 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|