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.
Files changed (122) hide show
  1. data/Gemfile +5 -10
  2. data/Gemfile.lock +13 -11
  3. data/README.rdoc +1 -1
  4. data/Rakefile +3 -3
  5. data/VERSION +1 -1
  6. data/bin/corl +2 -54
  7. data/bootstrap/bootstrap.sh +91 -0
  8. data/bootstrap/lib/shell/LICENSE.txt +674 -0
  9. data/bootstrap/lib/shell/command.sh +214 -0
  10. data/bootstrap/lib/shell/filesystem.sh +139 -0
  11. data/bootstrap/lib/shell/load.sh +73 -0
  12. data/bootstrap/lib/shell/os.sh +67 -0
  13. data/bootstrap/lib/shell/script.sh +160 -0
  14. data/bootstrap/lib/shell/starter.sh +64 -0
  15. data/bootstrap/lib/shell/validators.sh +50 -0
  16. data/bootstrap/os/ubuntu/00_base.sh +5 -0
  17. data/bootstrap/os/ubuntu/01_git.sh +5 -0
  18. data/bootstrap/os/ubuntu/05_ruby.sh +7 -0
  19. data/bootstrap/os/ubuntu/06_puppet.sh +38 -0
  20. data/bootstrap/os/ubuntu/10_corl.sh +9 -0
  21. data/corl.gemspec +61 -124
  22. data/lib/{corl → CORL}/action/bootstrap.rb +13 -7
  23. data/lib/CORL/action/exec.rb +39 -0
  24. data/lib/CORL/action/image.rb +31 -0
  25. data/lib/{corl → CORL}/action/images.rb +1 -1
  26. data/lib/CORL/action/lookup.rb +34 -0
  27. data/lib/{corl → CORL}/action/machines.rb +1 -1
  28. data/lib/CORL/action/provision.rb +31 -0
  29. data/lib/{corl → CORL}/action/seed.rb +3 -3
  30. data/lib/{corl → CORL}/action/spawn.rb +2 -2
  31. data/lib/CORL/action/start.rb +31 -0
  32. data/lib/CORL/action/stop.rb +31 -0
  33. data/lib/{corl → CORL}/configuration/file.rb +1 -1
  34. data/lib/{corl → CORL}/event/puppet.rb +1 -1
  35. data/lib/{corl → CORL}/extension/puppetloader.rb +1 -1
  36. data/lib/{corl → CORL}/machine/fog.rb +3 -3
  37. data/lib/{corl → CORL}/machine/physical.rb +2 -2
  38. data/lib/{corl → CORL}/network/default.rb +1 -1
  39. data/lib/{corl → CORL}/node/aws.rb +0 -4
  40. data/lib/{corl → CORL}/node/google.rb +0 -4
  41. data/lib/{corl → CORL}/node/local.rb +1 -1
  42. data/lib/{corl → CORL}/node/rackspace.rb +0 -4
  43. data/lib/{corl → CORL}/provisioner/puppetnode.rb +1 -14
  44. data/lib/{corl → CORL}/provisioner/puppetnode/resource.rb +0 -0
  45. data/lib/{corl → CORL}/provisioner/puppetnode/resource_group.rb +0 -0
  46. data/lib/{corl → CORL}/template/environment.rb +1 -1
  47. data/lib/core/facade.rb +49 -0
  48. data/lib/{corl_core → core}/mixin/action/keypair.rb +10 -10
  49. data/lib/{corl_core → core}/mixin/lookup.rb +0 -0
  50. data/lib/{corl_core → core}/mod/hiera_backend.rb +0 -0
  51. data/lib/{corl_core/mixin/action/node.rb → core/plugin/action.rb} +66 -33
  52. data/lib/{corl_core → core}/plugin/configuration.rb +2 -2
  53. data/lib/{corl/node → core/plugin}/fog.rb +5 -1
  54. data/lib/{corl_core → core}/plugin/machine.rb +2 -2
  55. data/lib/{corl_core → core}/plugin/network.rb +4 -4
  56. data/lib/{corl_core → core}/plugin/node.rb +11 -9
  57. data/lib/{corl_core → core}/plugin/provisioner.rb +2 -2
  58. data/lib/{corl_core → core}/util/ssh.rb +1 -1
  59. data/lib/corl.rb +53 -112
  60. data/lib/puppet/parser/functions/ensure.rb +0 -4
  61. data/locales/en.yml +55 -148
  62. metadata +84 -222
  63. data/lib/corl/action/add.rb +0 -69
  64. data/lib/corl/action/clone.rb +0 -40
  65. data/lib/corl/action/create.rb +0 -55
  66. data/lib/corl/action/exec.rb +0 -41
  67. data/lib/corl/action/extract.rb +0 -49
  68. data/lib/corl/action/image.rb +0 -30
  69. data/lib/corl/action/lookup.rb +0 -35
  70. data/lib/corl/action/provision.rb +0 -37
  71. data/lib/corl/action/remove.rb +0 -51
  72. data/lib/corl/action/save.rb +0 -53
  73. data/lib/corl/action/start.rb +0 -37
  74. data/lib/corl/action/stop.rb +0 -30
  75. data/lib/corl/action/update.rb +0 -37
  76. data/lib/corl/command/shell.rb +0 -164
  77. data/lib/corl/event/regex.rb +0 -52
  78. data/lib/corl/project/git.rb +0 -465
  79. data/lib/corl/project/github.rb +0 -108
  80. data/lib/corl/template/json.rb +0 -16
  81. data/lib/corl/template/wrapper.rb +0 -16
  82. data/lib/corl/template/yaml.rb +0 -16
  83. data/lib/corl/translator/json.rb +0 -27
  84. data/lib/corl/translator/yaml.rb +0 -27
  85. data/lib/corl_core/codes.rb +0 -107
  86. data/lib/corl_core/config.rb +0 -337
  87. data/lib/corl_core/config/collection.rb +0 -57
  88. data/lib/corl_core/config/options.rb +0 -70
  89. data/lib/corl_core/core.rb +0 -59
  90. data/lib/corl_core/corl.rb +0 -254
  91. data/lib/corl_core/errors.rb +0 -84
  92. data/lib/corl_core/facade.rb +0 -126
  93. data/lib/corl_core/gems.rb +0 -72
  94. data/lib/corl_core/manager.rb +0 -425
  95. data/lib/corl_core/mixin/action/commit.rb +0 -58
  96. data/lib/corl_core/mixin/action/project.rb +0 -53
  97. data/lib/corl_core/mixin/action/push.rb +0 -52
  98. data/lib/corl_core/mixin/config/collection.rb +0 -53
  99. data/lib/corl_core/mixin/config/ops.rb +0 -53
  100. data/lib/corl_core/mixin/config/options.rb +0 -39
  101. data/lib/corl_core/mixin/macro/object_interface.rb +0 -361
  102. data/lib/corl_core/mixin/macro/plugin_interface.rb +0 -380
  103. data/lib/corl_core/mixin/settings.rb +0 -46
  104. data/lib/corl_core/mixin/sub_config.rb +0 -148
  105. data/lib/corl_core/mod/hash.rb +0 -29
  106. data/lib/corl_core/plugin/action.rb +0 -381
  107. data/lib/corl_core/plugin/base.rb +0 -374
  108. data/lib/corl_core/plugin/command.rb +0 -98
  109. data/lib/corl_core/plugin/event.rb +0 -53
  110. data/lib/corl_core/plugin/extension.rb +0 -12
  111. data/lib/corl_core/plugin/project.rb +0 -927
  112. data/lib/corl_core/plugin/template.rb +0 -80
  113. data/lib/corl_core/plugin/translator.rb +0 -38
  114. data/lib/corl_core/util/cli.rb +0 -352
  115. data/lib/corl_core/util/data.rb +0 -404
  116. data/lib/corl_core/util/disk.rb +0 -114
  117. data/lib/corl_core/util/git.rb +0 -47
  118. data/lib/corl_core/util/interface.rb +0 -319
  119. data/lib/corl_core/util/liquid.rb +0 -17
  120. data/lib/corl_core/util/package.rb +0 -93
  121. data/lib/corl_core/util/shell.rb +0 -239
  122. 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
+