tikal-rainbow 0.0.0

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 (3) hide show
  1. checksums.yaml +7 -0
  2. data/bin/rainbow +89 -0
  3. metadata +52 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0ff4d051bf9f5a858d266209a0c6f14afdebbc09
4
+ data.tar.gz: 8adce687a00bdcf095412373b50b0d1ead5ebde6
5
+ SHA512:
6
+ metadata.gz: a2f204964332fe55022683a0ea87fc501fdb7eb3fd551a8eb1eb6856bee2b2cfa9af98755e1b32b387b89f2851d28871e7f673f2cbefe90213c93858782acefd
7
+ data.tar.gz: 77afe623232963d62491b36fe3abfe683250433b8420e759caf68de51851d01dffb6e701a8798bafb6ef1439af90c36cb9f2a72b7e6508257ccd1d4738be0626
data/bin/rainbow ADDED
@@ -0,0 +1,89 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'yaml'
4
+ require 'erb'
5
+
6
+ command = ARGV[0]
7
+
8
+ #Create a template Rainbowfile
9
+ def init
10
+ rainbow_file = %{
11
+ #Rainbowfile template
12
+ dependencies:
13
+ - openjdk-7-jre
14
+ - ruby
15
+
16
+ run: ruby /opt/rainbow/rainbow.rb
17
+ }
18
+ IO.write("Rainbowfile", rainbow_file)
19
+ end
20
+
21
+ def image
22
+ yaml = IO.read("Rainbowfile")
23
+ obj = YAML.load(yaml)
24
+
25
+ dependencies = obj["dependencies"]
26
+ run = obj["run"]
27
+
28
+ binding.local_variable_set(:dependencies, dependencies)
29
+
30
+ template = %{
31
+ FROM ubuntu:14.04
32
+ RUN apt-get update && apt-get install -y --force-yes <% dependencies.each do |dependency| %><%= dependency %> <% end %>\n
33
+ CMD <%= run %>
34
+ }
35
+ docker_file = ERB.new(template, 0, '>').result(binding).strip
36
+
37
+ IO.write("Dockerfile", docker_file)
38
+ system("docker build -t rainbow .")
39
+ end
40
+
41
+ def compose
42
+ compose = %{
43
+ version: '2'
44
+ services:
45
+ frontend:
46
+ image: {imagename}
47
+ ports:
48
+ - "8080"
49
+ environment:
50
+ - KEY=value
51
+ volumes:
52
+ - /home/user/data:/opt/rainbow
53
+ networks:
54
+ rainbow:
55
+ aliases:
56
+ - frontend
57
+
58
+ backend:
59
+ image: {imagename}
60
+ hostname: gateway
61
+ environment:
62
+ KEY: value
63
+ networks:
64
+ rainbow:
65
+ aliases:
66
+ - backend
67
+ networks:
68
+ rainbow:
69
+ driver: bridge
70
+ }
71
+ IO.write("docker-compose.yml", compose)
72
+ end
73
+
74
+ def run
75
+ system("docker-compose up -d")
76
+ end
77
+
78
+ case command
79
+ when "init"
80
+ init
81
+ when "image"
82
+ image
83
+ when "compose"
84
+ compose
85
+ when "run"
86
+ puts "run"
87
+ else
88
+ puts "WTF?!?!? The only options are 'init', 'image', 'compose' & 'run'"
89
+ end
metadata ADDED
@@ -0,0 +1,52 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tikal-rainbow
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Ilan Goldenstein
8
+ - Dan Hirsch
9
+ - Yoram Michaeli
10
+ - Avi Amsalem
11
+ - Doron Shai
12
+ - Ivan Prokhorov
13
+ - Lev Plotkin
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+ date: 2016-07-19 00:00:00.000000000 Z
18
+ dependencies: []
19
+ description: A tool to containerify your code and application for simple creation
20
+ of runtime environment locally
21
+ email: dan@tikalk.com
22
+ executables:
23
+ - rainbow
24
+ extensions: []
25
+ extra_rdoc_files: []
26
+ files:
27
+ - bin/rainbow
28
+ homepage: http://rubygems.org/gems/rainbow
29
+ licenses:
30
+ - GNU V2
31
+ metadata: {}
32
+ post_install_message:
33
+ rdoc_options: []
34
+ require_paths:
35
+ - lib
36
+ required_ruby_version: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ required_rubygems_version: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ requirements: []
47
+ rubyforge_project:
48
+ rubygems_version: 2.5.1
49
+ signing_key:
50
+ specification_version: 4
51
+ summary: 'Rainbow: developer personal dev env'
52
+ test_files: []