bullet_train 1.0.60 ā 1.0.63
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bullet_train/version.rb +1 -1
- data/lib/tasks/bullet_train_tasks.rake +174 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '05088afc4affaa18a3a6f9be10681fde1f5b8bd1c68705d21278d39a2bce81e1'
|
4
|
+
data.tar.gz: ed81fa3a64317c4229c7e46023f89651836f907f75b6ac1b89450ed56fed9aaf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1f4dabd1bd84467e2fdb2fa5bfdd4a9e51eabeccf01a547dada961e1c70f079ac589c980241afeabb27752fa1cd5e079c77a6d343177b22bda5f0058aad21be
|
7
|
+
data.tar.gz: d37c6cd6b9a3ca59b36b084d594c2979b7ef44c2e6bf1c4b7682ca18260ab502e034dfbcb44c45378b97bed2eeccdef581519d00acfc02f5d10637ddf6f1277f
|
data/lib/bullet_train/version.rb
CHANGED
@@ -56,4 +56,178 @@ namespace :bullet_train do
|
|
56
56
|
warn "\nš
Usage: `bin/resolve [path, partial, or URL] (--eject) (--open)`\n".blue
|
57
57
|
end
|
58
58
|
end
|
59
|
+
|
60
|
+
task :develop, [:all_options] => :environment do |t, arguments|
|
61
|
+
def stream(command, prefix = " ")
|
62
|
+
puts ""
|
63
|
+
|
64
|
+
begin
|
65
|
+
trap("SIGINT") { throw :ctrl_c }
|
66
|
+
|
67
|
+
IO.popen(command) do |io|
|
68
|
+
while (line = io.gets)
|
69
|
+
puts "#{prefix}#{line}"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
rescue UncaughtThrowError
|
73
|
+
puts "Received a <Control + C>. Exiting the child process.".blue
|
74
|
+
end
|
75
|
+
|
76
|
+
puts ""
|
77
|
+
end
|
78
|
+
|
79
|
+
# TODO Extract this into a YAML file.
|
80
|
+
framework_packages = {
|
81
|
+
"bullet_train" => {
|
82
|
+
git: "bullet-train-co/bullet_train-base",
|
83
|
+
npm: "@bullet-train/bullet-train"
|
84
|
+
},
|
85
|
+
"bullet_train-api" => {
|
86
|
+
git: "bullet-train-co/bullet_train-api",
|
87
|
+
},
|
88
|
+
"bullet_train-fields" => {
|
89
|
+
git: "bullet-train-co/bullet_train-fields",
|
90
|
+
npm: "@bullet-train/fields"
|
91
|
+
},
|
92
|
+
"bullet_train-has_uuid" => {
|
93
|
+
git: "bullet-train-co/bullet_train-has_uuid",
|
94
|
+
},
|
95
|
+
"bullet_train-incoming_webhooks" => {
|
96
|
+
git: "bullet-train-co/bullet_train-incoming_webhooks",
|
97
|
+
},
|
98
|
+
"bullet_train-integrations" => {
|
99
|
+
git: "bullet-train-co/bullet_train-integrations",
|
100
|
+
},
|
101
|
+
"bullet_train-integrations-stripe" => {
|
102
|
+
git: "bullet-train-co/bullet_train-base-integrations-stripe",
|
103
|
+
},
|
104
|
+
"bullet_train-obfuscates_id" => {
|
105
|
+
git: "bullet-train-co/bullet_train-obfuscates_id",
|
106
|
+
},
|
107
|
+
"bullet_train-outgoing_webhooks" => {
|
108
|
+
git: "bullet-train-co/bullet_train-outgoing_webhooks",
|
109
|
+
},
|
110
|
+
"bullet_train-outgoing_webhooks-core" => {
|
111
|
+
git: "bullet-train-co/bullet_train-outgoing_webhooks-core",
|
112
|
+
},
|
113
|
+
"bullet_train-scope_questions" => {
|
114
|
+
git: "bullet-train-co/bullet_train-scope_questions",
|
115
|
+
},
|
116
|
+
"bullet_train-scope_validator" => {
|
117
|
+
git: "bullet-train-co/bullet_train-scope_validator",
|
118
|
+
},
|
119
|
+
"bullet_train-sortable" => {
|
120
|
+
git: "bullet-train-co/bullet_train-sortable",
|
121
|
+
npm: "@bullet-train/bullet-train-sortable"
|
122
|
+
},
|
123
|
+
"bullet_train-super_scaffolding" => {
|
124
|
+
git: "bullet-train-co/bullet_train-super_scaffolding",
|
125
|
+
},
|
126
|
+
"bullet_train-super_load_and_authorize_resource" => {
|
127
|
+
git: "bullet-train-co/bullet_train-super_load_and_authorize_resource",
|
128
|
+
},
|
129
|
+
"bullet_train-themes" => {
|
130
|
+
git: "bullet-train-co/bullet_train-themes",
|
131
|
+
},
|
132
|
+
"bullet_train-themes-base" => {
|
133
|
+
git: "bullet-train-co/bullet_train-themes-base",
|
134
|
+
},
|
135
|
+
"bullet_train-themes-light" => {
|
136
|
+
git: "bullet-train-co/bullet_train-themes-light",
|
137
|
+
},
|
138
|
+
"bullet_train-themes-tailwind_css" => {
|
139
|
+
git: "bullet-train-co/bullet_train-themes-tailwind_css",
|
140
|
+
},
|
141
|
+
}
|
142
|
+
|
143
|
+
puts "Which framework package do you want to work on?".blue
|
144
|
+
puts ""
|
145
|
+
framework_packages.each do |gem, details|
|
146
|
+
puts " #{framework_packages.keys.find_index(gem) + 1}. #{gem}".blue
|
147
|
+
end
|
148
|
+
puts ""
|
149
|
+
puts "Enter a number below and hit <Enter>:".blue
|
150
|
+
number = $stdin.gets.chomp
|
151
|
+
|
152
|
+
gem = framework_packages.keys[number.to_i - 1]
|
153
|
+
|
154
|
+
if gem
|
155
|
+
details = framework_packages[gem]
|
156
|
+
|
157
|
+
puts "OK! Let's work on `#{gem}` together!".green
|
158
|
+
puts ""
|
159
|
+
puts "First, we're going to clone a copy of the package repository.".blue
|
160
|
+
|
161
|
+
# TODO Prompt whether they want to check out their own forked version of the repository.
|
162
|
+
|
163
|
+
if File.exist?("local/#{gem}")
|
164
|
+
puts "Can't clone into `local/#{gem}` because it already exists. We will try to use what's already there.".yellow
|
165
|
+
puts "However, it will be up to you to make sure that working copy of the repository is in a clean state and checked out to the `main` branch or whatever you want to work on.".yellow
|
166
|
+
puts "Hit <Enter> to continue.".blue
|
167
|
+
$stdin.gets
|
168
|
+
|
169
|
+
# TODO We should check whether the local copy is in a clean state, and if it is, check out `main`.
|
170
|
+
# TODO We should also pull `origin/main` to make sure we're on the most up-to-date version of the package.
|
171
|
+
else
|
172
|
+
stream "git clone git@github.com:#{details[:git]}.git local/#{gem}"
|
173
|
+
end
|
174
|
+
|
175
|
+
# TODO Ask them whether they want to check out a specific branch to work on. (List available remote branches.)
|
176
|
+
|
177
|
+
puts ""
|
178
|
+
puts "Now we'll try to link up that repository in the `Gemfile`.".blue
|
179
|
+
if `cat Gemfile | grep "gem \\\"#{gem}\\\", path: \\\"local/#{gem}\\\""`.chomp.present?
|
180
|
+
puts "This gem is already linked to a checked out copy in `local` in the `Gemfile`.".green
|
181
|
+
elsif `cat Gemfile | grep "gem \\\"#{gem}\\\","`.chomp.present?
|
182
|
+
puts "This gem already has some sort of alternative source configured in the `Gemfile`.".yellow
|
183
|
+
puts "We can't do anything with this. Sorry! We'll proceed, but you have to link this package yourself.".red
|
184
|
+
elsif `cat Gemfile | grep "gem \\\"#{gem}\\\""`.chomp.present?
|
185
|
+
puts "This gem is directly present in the `Gemfile`, so we'll update that line.".green
|
186
|
+
|
187
|
+
text = File.read("Gemfile")
|
188
|
+
new_contents = text.gsub(/gem "#{gem}"/, "gem \"#{gem}\", path: \"local/#{gem}\"")
|
189
|
+
File.open("Gemfile", "w") { |file| file.puts new_contents }
|
190
|
+
else
|
191
|
+
puts "This gem isn't directly present in the `Gemfile`, so we'll add it temporarily.".green
|
192
|
+
File.open("Gemfile", "a+") { |file|
|
193
|
+
file.puts
|
194
|
+
file.puts "gem \"#{gem}\", path: \"local/#{gem}\" # Added by \`bin/develop\`."
|
195
|
+
}
|
196
|
+
end
|
197
|
+
|
198
|
+
puts ""
|
199
|
+
puts "Now we'll run `bundle install`.".blue
|
200
|
+
stream "bundle install"
|
201
|
+
|
202
|
+
puts ""
|
203
|
+
puts "We'll restart any running Rails server now.".blue
|
204
|
+
stream "rails restart"
|
205
|
+
|
206
|
+
puts ""
|
207
|
+
puts "OK, we're opening that package in your IDE, `#{ENV["IDE"] || "code"}`. (You can configure this with `export IDE=whatever`.)".blue
|
208
|
+
`#{ENV["IDE"] || "code"} local/#{gem}`
|
209
|
+
|
210
|
+
puts ""
|
211
|
+
if details[:npm]
|
212
|
+
puts "This package also has an npm package, so we'll link that up as well.".blue
|
213
|
+
stream "cd local/#{gem} && yarn install && npx yalc link && cd ../.. && npx yalc link \"#{details[:npm]}\""
|
214
|
+
|
215
|
+
puts ""
|
216
|
+
puts "And now we're going to watch for any changes you make to the JavaScript and recompile as we go.".blue
|
217
|
+
puts "When you're done, you can hit <Control + C> and we'll clean all off this up.".blue
|
218
|
+
stream "cd local/#{gem} && yarn watch"
|
219
|
+
else
|
220
|
+
puts "This package has no npm package, so we'll just hang out here and do nothing. However, when you hit <Enter> here, we'll start the process of cleaning all of this up.".blue
|
221
|
+
$stdin.gets
|
222
|
+
end
|
223
|
+
|
224
|
+
puts ""
|
225
|
+
puts "OK, here's a list of things this script still doesn't do you for you:".yellow
|
226
|
+
puts "1. It doesn't clean up the repository that was cloned into `local`.".yellow
|
227
|
+
puts "2. Unless you remove it, it won't update that repository the next time you link to it.".yellow
|
228
|
+
else
|
229
|
+
puts ""
|
230
|
+
puts "Invalid option, \"#{number}\". Try again.".red
|
231
|
+
end
|
232
|
+
end
|
59
233
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bullet_train
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.63
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Culver
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: standard
|
@@ -634,7 +634,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
634
634
|
- !ruby/object:Gem::Version
|
635
635
|
version: '0'
|
636
636
|
requirements: []
|
637
|
-
rubygems_version: 3.
|
637
|
+
rubygems_version: 3.3.7
|
638
638
|
signing_key:
|
639
639
|
specification_version: 4
|
640
640
|
summary: Bullet Train
|