tayo 0.1.7 โ 0.1.9
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 +4 -4
- data/lib/tayo/commands/init.rb +11 -28
- data/lib/tayo/dockerfile_modifier.rb +51 -0
- data/lib/tayo/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 656932f35e6ed0b14e993cd2960e974b14b46d8b291a246413ff66c4b1fcdad4
|
4
|
+
data.tar.gz: 90c7be3808b81f77cddb142073ec96bb9c17109aaf86e45e24d7e419f5917186
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9fce8e10ab4b42ea3a26839e4100463fa2a72b4c3f752edf48e8350c1899befc517814ab1ff923062ac54671a6015b0424f25e9c17d195b6bc548389348b207
|
7
|
+
data.tar.gz: 9df5dae317418b2e3f474d5fd731cb29d83cd90ea89e10a3ef439dfc46762abb9f9b3ac4099ed36f4fcfe8ab4a8a68347a782142176c95319a2269f2839e02f8
|
data/lib/tayo/commands/init.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "colorize"
|
4
|
+
require_relative "../dockerfile_modifier"
|
4
5
|
|
5
6
|
module Tayo
|
6
7
|
module Commands
|
7
8
|
class Init
|
8
9
|
def execute
|
9
|
-
puts "๐ Tayo ์ด๊ธฐํ๋ฅผ ์์ํฉ๋๋ค...".colorize(:green)
|
10
|
+
puts "๐ Tayo v#{Tayo::VERSION} ์ด๊ธฐํ๋ฅผ ์์ํฉ๋๋ค...".colorize(:green)
|
10
11
|
|
11
12
|
unless rails_project?
|
12
13
|
puts "โ Rails ํ๋ก์ ํธ๊ฐ ์๋๋๋ค. Rails ํ๋ก์ ํธ ๋ฃจํธ์์ ์คํํด์ฃผ์ธ์.".colorize(:red)
|
@@ -152,35 +153,17 @@ module Tayo
|
|
152
153
|
puts "โ
Dockerfile์ด ์ด๋ฏธ ์กด์ฌํฉ๋๋ค.".colorize(:green)
|
153
154
|
end
|
154
155
|
|
155
|
-
# Dockerfile์์ bootsnap
|
156
|
-
|
156
|
+
# Dockerfile์์ bootsnap ๋ถ๋ถ ๋นํ์ฑํ (๋น๋ ๋ฌธ์ ํด๊ฒฐ)
|
157
|
+
disable_bootsnap_in_dockerfile
|
157
158
|
end
|
158
159
|
|
159
|
-
def
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
# ์ญ์ ํ ํจํด๋ค์ ์ ์ํฉ๋๋ค.
|
167
|
-
comment_pattern = /^\s*# Precompile bootsnap code for faster boot times/i
|
168
|
-
run_command_pattern = /^\s*RUN bundle exec bootsnap precompile app\/ lib\//i
|
169
|
-
|
170
|
-
# `reject`๋ฅผ ์ฌ์ฉํด ํจํด๊ณผ ์ผ์นํ๋ ์ค๋ค์ ํ๋ฒ์ ์ ๊ฑฐํฉ๋๋ค.
|
171
|
-
filtered_lines = lines.reject do |line|
|
172
|
-
line.match?(comment_pattern) || line.match?(run_command_pattern)
|
173
|
-
end
|
174
|
-
|
175
|
-
new_content = filtered_lines.join("\n")
|
176
|
-
# ์๋ณธ ํ์ผ์ด ๊ฐํ์ผ๋ก ๋๋ฌ๋ค๋ฉด ์ ํ์ผ๋ ๊ฐํ์ผ๋ก ๋๋๋๋ก
|
177
|
-
new_content += "\n" if original_content.end_with?("\n") && !new_content.end_with?("\n")
|
178
|
-
|
179
|
-
# ๋ณ๊ฒฝ๋ ๋ด์ฉ์ด ์์ ๊ฒฝ์ฐ์๋ง ํ์ผ์ ๋ค์ ์๋๋ค.
|
180
|
-
if new_content != original_content
|
181
|
-
File.write(dockerfile_path, new_content)
|
182
|
-
puts "โ
Dockerfile์์ bootsnap precompile ๋ถ๋ถ์ ์ ๊ฑฐํ์ต๋๋ค. (๋น๋ ๋ฌธ์ ํด๊ฒฐ)".colorize(:green)
|
183
|
-
puts " - ์ด๋ ์๋ ค์ง ๋น๋ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํจ์
๋๋ค.".colorize(:gray)
|
160
|
+
def disable_bootsnap_in_dockerfile
|
161
|
+
puts "๐ง Dockerfile์์ bootsnap์ ๋นํ์ฑํํฉ๋๋ค...".colorize(:yellow)
|
162
|
+
begin
|
163
|
+
modifier = DockerfileModifier.new
|
164
|
+
modifier.init
|
165
|
+
rescue => e
|
166
|
+
puts "โ ๏ธ Dockerfile ์์ ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค: #{e.message}".colorize(:yellow)
|
184
167
|
end
|
185
168
|
end
|
186
169
|
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "fileutils"
|
4
|
+
require "colorize"
|
5
|
+
|
6
|
+
module Tayo
|
7
|
+
class DockerfileModifier
|
8
|
+
attr_reader :project_path, :dockerfile_path
|
9
|
+
|
10
|
+
def initialize(project_path = Dir.pwd)
|
11
|
+
@project_path = project_path
|
12
|
+
@dockerfile_path = File.join(project_path, 'Dockerfile')
|
13
|
+
end
|
14
|
+
|
15
|
+
def init
|
16
|
+
unless File.exist?(dockerfile_path)
|
17
|
+
raise "Dockerfile not found in #{project_path}"
|
18
|
+
end
|
19
|
+
|
20
|
+
backup_dockerfile
|
21
|
+
modify_dockerfile
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def backup_dockerfile
|
27
|
+
backup_path = File.join(project_path, 'Dockerfile.origin')
|
28
|
+
FileUtils.cp(dockerfile_path, backup_path)
|
29
|
+
puts "โ
Dockerfile ๋ฐฑ์
์ด ์์ฑ๋์์ต๋๋ค: #{backup_path}".colorize(:green) if defined?(String.colorize)
|
30
|
+
end
|
31
|
+
|
32
|
+
# =================================================================
|
33
|
+
# === ์์ ๋ ํต์ฌ ๋ก์ง ===
|
34
|
+
# =================================================================
|
35
|
+
def modify_dockerfile
|
36
|
+
content = File.read(dockerfile_path)
|
37
|
+
|
38
|
+
# 1. `bundle install` ๋ผ์ธ์ ๋ง์ง๋ง์ ๋ถ์ด์๋ bootsnap ๋ถ๋ถ์ ์ ๊ฑฐํฉ๋๋ค.
|
39
|
+
# - `&& \` ์ ํจ๊ป `bootsnap precompile --gemfile` ๋ถ๋ถ์ ์ฐพ์์ ๋น ๋ฌธ์์ด๋ก ๋ง๋ญ๋๋ค.
|
40
|
+
modified_content = content.gsub(/\s*&& \\\s*bundle exec bootsnap precompile --gemfile/, '')
|
41
|
+
|
42
|
+
# 2. ๋จ๋
์ผ๋ก ์กด์ฌํ๋ `bootsnap precompile app/ lib/` ๋ผ์ธ์ ์ฃผ์ ์ฒ๋ฆฌํฉ๋๋ค.
|
43
|
+
# - ๋ผ์ธ ์์(`^`)๋ถํฐ ํ์ธํ์ฌ ์ ํํ ํด๋น ๋ผ์ธ๋ง ๋์์ผ๋ก ์ผ์ต๋๋ค.
|
44
|
+
# - ์๋์ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ๋ณด์กดํ๊ธฐ ์ํด ์๋ถ๋ถ์ ๊ณต๋ฐฑ(`\s*`)์ ์บก์ฒ(`()`)ํ๋ค๊ฐ ๋ค์ ์ฌ์ฉ(`\1`)ํฉ๋๋ค.
|
45
|
+
modified_content.gsub!(/^(\s*)RUN bundle exec bootsnap precompile app\/ lib\//, '\1# RUN bundle exec bootsnap precompile app/ lib/')
|
46
|
+
|
47
|
+
File.write(dockerfile_path, modified_content)
|
48
|
+
puts "โ
Dockerfile์์ bootsnap ๋ถ๋ถ์ด ๋นํ์ฑํ๋์์ต๋๋ค.".colorize(:green) if defined?(String.colorize)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/tayo/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tayo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ์ด์์ญwonsup Lee/Alfonso
|
@@ -83,6 +83,7 @@ files:
|
|
83
83
|
- lib/tayo/commands/cf.rb
|
84
84
|
- lib/tayo/commands/gh.rb
|
85
85
|
- lib/tayo/commands/init.rb
|
86
|
+
- lib/tayo/dockerfile_modifier.rb
|
86
87
|
- lib/tayo/version.rb
|
87
88
|
- pkg/homebody-0.1.0.gem
|
88
89
|
- repomix-output.xml
|