semi 0.2.0 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 27d8db903292d4ea08917e7a7ed4c0f790bf256c
4
- data.tar.gz: d0f87a3cd58e18b32b1c5dc5f5bfb2493c59e7a6
3
+ metadata.gz: 80fb95486ba180d4b96a45f40360ffa8df51b044
4
+ data.tar.gz: ed494f2aac254260547e5ebe76d9ce32a61c7d29
5
5
  SHA512:
6
- metadata.gz: 31cf21808a71321d4fa405cd816db173601df2277b9536f69bb5c7a63e9d4aaf3fdd44e7ef8b79c75aa9baf038699fd90ad8d869119be38c6c7b8b618fc4512e
7
- data.tar.gz: d9b16981fab58f495df5f7b42e4c03783f2d53d4a2170315fcc403d69f8aff8dd658193e26ddb427596439c0c1398e5e887d6affb94fdf7e9f7d3676a2a4f606
6
+ metadata.gz: 1e9b7a6311d3fedae0fefd7de3332f191434913e1817dd858ba7bbda072ea360005483ff58cea1b0fe3de9bc584c568d43c6c654333ddda5e76cc5f17de57c86
7
+ data.tar.gz: 013a7b0ecb085481b9c9e81195ca04ae029c4f3101b5ef94d5b9d6da1209f84c66b2fc2a78381ded61061a6f792fb64b48047dbf2f497b098178dc2514f14c65
data/README.md CHANGED
@@ -8,6 +8,10 @@ Configuration File
8
8
  Configuration file is expected at /etc/semi.conf or as specified by the
9
9
  SEMI_CONF environmental variable.
10
10
 
11
+ The configuration file is nothing more than a YAML file with four principal
12
+ sections: defaults, validate, files and commands. Each of these sections
13
+ further explained elsewhere in this README file.
14
+
11
15
  ---
12
16
  defaults:
13
17
  PATH: /usr/bin:/bin
@@ -23,4 +27,62 @@ SEMI_CONF environmental variable.
23
27
  commands:
24
28
  README: cat /README.md
25
29
  readme: cat /README.md
26
-
30
+ default: bundle exec unicorn -E production -c unicorn.rb
31
+
32
+
33
+ Defaults
34
+ --------
35
+ The defaults section will supply a value for any variable that has not been
36
+ specified in the environment. Currently there is a bug that if a value is
37
+ defined but is set to an empty string in the environment, the default value
38
+ will not override the environment.
39
+
40
+ Validators
41
+ ----------
42
+ Validators allow one to insure that the value of a variable is within a
43
+ specified range. Each key of the validate section is a name of a variable
44
+ that can be used in the ERB templates. The values are one or more
45
+ validation expressions to test the values against. The values may be
46
+ specified as a comma seperated string or as an array.
47
+
48
+ * required
49
+
50
+ Ensures that a value is defined for the variable. If a value is not
51
+ defined, then the container will exit with a message detailing
52
+ which variable has not been set.
53
+
54
+ * string
55
+
56
+ Validate that the value is generally considered a string.
57
+
58
+ * integer
59
+
60
+ Test the value to see if it is an integer. Floating point numbers
61
+ will require another validator.
62
+
63
+ * boolean
64
+
65
+ This validator attempts to determine if the value is boolean value.
66
+
67
+ * Regular Expression
68
+
69
+ For validations that are not specified, one is able to specify a
70
+ regular expression to validate a value. The regular expression must
71
+ start and end with a slash (/).
72
+
73
+ Future plans are to include more validators for validating values like
74
+ hostnames, IPs, host/port combinations, filenames and URLs.
75
+
76
+ Filenames
77
+ ---------
78
+ The filenames section list all the configuration files that ned to be
79
+ processed as ERB templates. The full ERB template syntax is supported.
80
+
81
+ Commands
82
+ --------
83
+ Additional commands can be added to the container in the commands section.
84
+ This is useful for adding automation and providing simple commands to
85
+ activate more complex commands in the container.
86
+
87
+ There is one special value (default) that will be used when the entrypoint
88
+ is not provided any arguements.
data/lib/semi/driver.rb CHANGED
@@ -6,12 +6,12 @@ module Semi
6
6
 
7
7
  def initialize(path)
8
8
  @config = Semi::Config.new(path)
9
- @dictionary = ENV.to_h
10
9
  end
11
10
 
12
11
  def start
13
12
  # Merge defaults into the environment
14
- @dictionary.merge!(@config.defaults)
13
+ @dictionary = @config.defaults.dup
14
+ @dictionary.merge!(ENV.to_h)
15
15
 
16
16
  # Check any validations being asserted
17
17
  @config.validators.each_key { |key|
data/lib/semi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Semi
2
- version = '0.2.0'
2
+ version = '0.2.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerard Hickey