tikal-rainbow 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []