Hitcher 0.1.2 → 0.1.3

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
  SHA256:
3
- metadata.gz: e2cbf0d48e66e6f6bc3fddf5d9e1f657a5aa192c85739ce55bc74798e675659c
4
- data.tar.gz: 4d428da2612f0bee76e0d68730872f13c2d777d15cca7b3a242ffda9dec0e6fc
3
+ metadata.gz: b4275c06412c3d90bac03253c5b1bbe1db7c9f93b50633ae958399d0b2d90cae
4
+ data.tar.gz: 96b478a0675d06a473512e2b8b2c8012b1fa02024f7c5cdcf060b0b3b00c63da
5
5
  SHA512:
6
- metadata.gz: 54bacc6f28688e9a0e443f7454e5b90ab9b865f5dbbdffcf943d7054e805b349df3ba7f088692fccc7edbba0140d2b3097dc0b00d785527cd8378c8c4204f1e5
7
- data.tar.gz: bdb939ffb28b67d8173f154f57920b63a4bd1ceef1faafbf65704a7805caffb0d61cdc6e05d222acceb83b6c95a14b35277a72bed2ec850713e3939f938b1014
6
+ metadata.gz: 48c14ba0c31c7d4ba4d0147fb3e97f8f5033e339062421ffa0d0b6f7a3dad3909a59208e435a5b3d7c3626c0faf3f48d5dc4dc42caa04fd9d814a35ad51ddc2b
7
+ data.tar.gz: ddec925b0c46c179ceddbb4fe1dae9eff2bcf70c404b7b6d31f2714beb85935b894ccb7649d5c3a4310f1973338e405666fea0d2a4016cc474b1d04c19a63573
data/cspec CHANGED
@@ -10,7 +10,17 @@ tty true
10
10
 
11
11
  dockerfile do_plain
12
12
  FROM ruby-2_7_1
13
- RUN apt-get update && apt-get install -y yarn
13
+
14
+ RUN apt-get update && apt-get install -y yarn #sudo && chmod u+s /usr/bin/sudo
15
+ RUN groupadd -g $GID $USER && useradd -m $USER --uid=$UID --gid=$GID && passwd -d -u $USER && usermod -aG sudo $USER
16
+
17
+ RUN cp /root/.bash_profile /home/$USER/.bash_profile && chown $USER:$USER /home/$USER/.bash_profile
18
+ RUN cp /root/.bashrc /home/$USER/.bashrc && chown $USER:$USER /home/$USER/.bashrc
19
+ RUN cp /root/.profile /home/$USER/.profile && chown $USER:$USER /home/$USER/.profile
20
+
21
+ #USER $UID:$GID
22
+ #WORKDIR /home/$USER
23
+
14
24
  CMD ["/bin/bash","--login"]
15
25
  #CMD ["/usr/share/rvm/rubies/ruby-2.7.1/bin/irb"]
16
26
  end
@@ -25,3 +35,4 @@ mount do_plain
25
35
  ../lib/acts_as_tree:/opt/dev-deps/acts_as_tree
26
36
  end
27
37
 
38
+
@@ -12,8 +12,8 @@ module Hitcher
12
12
 
13
13
  def start(cont)
14
14
  cont.each do |c|
15
- c = c.strip
16
- if not c =~ /^#/ and not c.empty?
15
+ cc = c.strip
16
+ if not cc =~ /^#/ #and not c.empty?
17
17
  # ignoring comment
18
18
  eeval(c)
19
19
  end
@@ -1,7 +1,7 @@
1
1
 
2
2
  require_relative '../../global'
3
3
  require 'toolrack'
4
-
4
+ require 'etc'
5
5
  require 'ptools'
6
6
 
7
7
  module Hitcher
@@ -94,6 +94,9 @@ module Hitcher
94
94
  cmd << process_mount(opts)
95
95
  cmd << process_port(opts)
96
96
 
97
+ #userInfo = Etc.getpwnam(Etc.getlogin)
98
+ #cmd << "--user #{userInfo.uid}:#{userInfo.gid}"
99
+
97
100
  cmd << image
98
101
 
99
102
  if not_empty?(opts[:command])
@@ -1,5 +1,7 @@
1
1
 
2
2
  require "toolrack"
3
+ require 'etc'
4
+
3
5
  require_relative 'template'
4
6
  require_relative 'command_builder'
5
7
  require_relative 'command_runner'
@@ -47,8 +49,8 @@ module Hitcher
47
49
  # handle host:docker ==> /home/xxx/dev:/opt/dev
48
50
  ee = e.split(":")
49
51
  m = Mount.new
50
- m.host = translate(ee[0])
51
- m.docker = ee[1]
52
+ m.host = translate(ee[0].strip)
53
+ m.docker = ee[1].strip
52
54
  res << m
53
55
  end
54
56
  end
@@ -87,6 +89,8 @@ module Hitcher
87
89
  # class Dockerfile
88
90
  #
89
91
  class Dockerfile
92
+ include Antrapol::ToolRack::ConditionUtils
93
+
90
94
  attr_reader :cont
91
95
  def parse(blc)
92
96
  @cont = []
@@ -101,15 +105,45 @@ module Hitcher
101
105
  end
102
106
 
103
107
  elsif e.strip != "end"
104
- @cont << e
108
+ @cont << translate(e.strip)
105
109
  end
106
110
  end
107
111
  end
112
+
108
113
  end
109
114
 
110
115
  def is_empty?
111
116
  @cont.nil? or @cont.empty?
112
117
  end
118
+
119
+ private
120
+ def translate(line)
121
+
122
+ if not line.strip.empty?
123
+ if line =~ /\$USER/
124
+ line = line.gsub("$USER", user_info.name)
125
+ end
126
+
127
+ if line =~ /\$UID/
128
+ line = line.gsub("$UID", "#{user_info.uid}")
129
+ end
130
+
131
+ if line =~ /\$GID/
132
+ line = line.gsub("$GID", "#{user_info.gid}")
133
+ end
134
+ end
135
+
136
+ line
137
+ end
138
+
139
+ def user_info
140
+ if @userInfo.nil?
141
+ login = Etc.getlogin
142
+ @userInfo = Etc.getpwnam(login)
143
+ end
144
+ @userInfo
145
+ end
146
+
113
147
  end # class Dockerfile
114
148
 
115
149
  ##
@@ -196,13 +230,14 @@ module Hitcher
196
230
 
197
231
  te = Hitcher::Docker::TemplateEngine.new
198
232
 
199
- if depth == :dockerfile or depth == :all and not @dockerfile.nil?
233
+ if (depth == :dockerfile or depth == :all) and not @df.nil?
200
234
  te.build_template(:dockerfile, { image: @image, dockerfile: @df.cont })
201
235
  @logger.debug "Dockerfile generated"
202
236
  end
203
237
 
204
238
  if depth == :build_container or depth == :all
205
239
  te.build_template(:build_container, { image_name: @image })
240
+ @logger.debug "build_container generated"
206
241
  end
207
242
 
208
243
  if depth == :run_script or depth == :all
@@ -15,7 +15,8 @@ module Hitcher
15
15
  case temp
16
16
  when :dockerfile
17
17
  path = File.join(File.dirname(__FILE__),"templates","Dockerfile.erb")
18
- bind_template(path, File.join(dest_root,"Dockerfile"), val)
18
+ ccont = val[:dockerfile].join("\n")
19
+ bind_template(path, File.join(dest_root,"Dockerfile"), { dockerfile_content: ccont } )
19
20
  else
20
21
  if Antrapol::ToolRack::RuntimeUtils.on_windows?
21
22
  raise Hitcher::Error, "Not ready yet"
@@ -1,6 +1,4 @@
1
1
  <%#-*- coding: utf-8 -*-%>
2
- <% dockerfile.each do |d| %>
3
- <%= d.strip if not d.strip.empty? %>
4
- <% end %>
2
+ <%= dockerfile_content %>
5
3
 
6
4
 
@@ -1,3 +1,3 @@
1
1
  module Hitcher
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Hitcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Liaw
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-19 00:00:00.000000000 Z
11
+ date: 2021-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport