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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a054d416016543c46db065ca032c1df9d3947d25c44f383bd692ed991d5c6ea7
4
- data.tar.gz: da2546a278137b99f89997b458badefa2e0784c0816e789fd44a53d9ecc478e5
3
+ metadata.gz: 656932f35e6ed0b14e993cd2960e974b14b46d8b291a246413ff66c4b1fcdad4
4
+ data.tar.gz: 90c7be3808b81f77cddb142073ec96bb9c17109aaf86e45e24d7e419f5917186
5
5
  SHA512:
6
- metadata.gz: 05fbdbfa31cdce3a23e02ddd91df1831de68079a6c947f50d4f74275e2d82ec96cc17281212a58ba3f41c2680b70be8c8f89dd74d74fcb22ff4404dc7870529c
7
- data.tar.gz: '09b24998209da3e3c80bedd793289c52d6975b00a8e6878a8fedca010fd3f6c977ec6d90a4e4d66d8026ff5156ffabaa939f048e3bc4c9366f6801178b18fbac'
6
+ metadata.gz: b9fce8e10ab4b42ea3a26839e4100463fa2a72b4c3f752edf48e8350c1899befc517814ab1ff923062ac54671a6015b0424f25e9c17d195b6bc548389348b207
7
+ data.tar.gz: 9df5dae317418b2e3f474d5fd731cb29d83cd90ea89e10a3ef439dfc46762abb9f9b3ac4099ed36f4fcfe8ab4a8a68347a782142176c95319a2269f2839e02f8
@@ -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 precompile ๋ถ€๋ถ„ ์ œ๊ฑฐ (๋นŒ๋“œ ๋ฌธ์ œ ํ•ด๊ฒฐ)
156
- fix_dockerfile_bootsnap_issue
156
+ # Dockerfile์—์„œ bootsnap ๋ถ€๋ถ„ ๋น„ํ™œ์„ฑํ™” (๋นŒ๋“œ ๋ฌธ์ œ ํ•ด๊ฒฐ)
157
+ disable_bootsnap_in_dockerfile
157
158
  end
158
159
 
159
- def fix_dockerfile_bootsnap_issue
160
- dockerfile_path = "Dockerfile"
161
- return unless File.exist?(dockerfile_path)
162
-
163
- original_content = File.read(dockerfile_path)
164
- lines = original_content.split("\n")
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tayo
4
- VERSION = "0.1.7"
4
+ VERSION = "0.1.9"
5
5
  end
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.7
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