run_tasks 1.2.8 → 1.4.0
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 +5 -5
- data/src/run.rb +38 -34
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0de82fa9c8781db30c68460761abbef5daf589b7
|
4
|
+
data.tar.gz: 78d78c13f4dd1c98806e228eeb7187e1b32e2a04
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfbe8b48bd113e771749f9821a8844fccfe84eedf9a512bbfe52c11c13b1d19636fbf0d0008af8fd13edfcd2f507f87e27e736a71fb8046d84350bb82b766b47
|
7
|
+
data.tar.gz: 152e3afd479a9bdea597a9560ef93c710b27b65724e08272b7199666a220416713aaa893fa4dd4c089a5c92e53fc4e353760e17c79dc21de97a9fa0834cdf5fe
|
data/src/run.rb
CHANGED
@@ -27,18 +27,18 @@ HOMEPAGE = GEM&.homepage
|
|
27
27
|
|
28
28
|
@tasks = Hash.new
|
29
29
|
|
30
|
-
#
|
30
|
+
# @param name [Symbol]
|
31
|
+
# @param help [String]
|
32
|
+
# @yield [*Array, **Hash]
|
31
33
|
def task(name, help = "", &block)
|
32
34
|
if !name.is_a?(Symbol)
|
33
35
|
puts
|
34
36
|
puts "First task parameter must be a symbol".red
|
35
|
-
puts
|
36
37
|
exit 6
|
37
38
|
end
|
38
39
|
if !help.is_a?(String)
|
39
40
|
puts
|
40
41
|
puts "Second task parameter must be a string".red
|
41
|
-
puts
|
42
42
|
exit 6
|
43
43
|
end
|
44
44
|
@tasks.store(
|
@@ -50,16 +50,18 @@ def task(name, help = "", &block)
|
|
50
50
|
)
|
51
51
|
end
|
52
52
|
|
53
|
-
#
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
# @param task_name_or_command [Symbol, String]
|
54
|
+
# @param arguments [Array] Optional arguments sent to the task.
|
55
|
+
# @param options [Hash] Optional options sent to the task.
|
56
|
+
def run(task_name_or_command, *arguments, **options)
|
57
|
+
if task_name_or_command.is_a?(Symbol)
|
58
|
+
@tasks[task_name_or_command][:block].call *arguments, **options
|
59
|
+
return
|
60
|
+
end
|
57
61
|
|
58
|
-
|
59
|
-
def shell(command)
|
60
|
-
puts ">".bright_blue + " #{command}".bright_white
|
62
|
+
puts ">".bright_blue + " #{task_name_or_command}".bright_white
|
61
63
|
puts
|
62
|
-
case system(
|
64
|
+
case system(task_name_or_command)
|
63
65
|
when false
|
64
66
|
puts
|
65
67
|
puts "The command has exited with return code: #{$?.exitstatus}.".magenta
|
@@ -74,6 +76,7 @@ def shell(command)
|
|
74
76
|
puts
|
75
77
|
end
|
76
78
|
|
79
|
+
# @param uri [String]
|
77
80
|
def require_remote(uri)
|
78
81
|
cache_path = "/tmp/run_cache_#{Digest::MD5.hexdigest(uri)}"
|
79
82
|
if !File.exists? cache_path
|
@@ -84,10 +87,10 @@ rescue => error
|
|
84
87
|
puts
|
85
88
|
puts "Unable to load #{uri}:".red
|
86
89
|
puts "#{error.class}: #{error.message}".red
|
87
|
-
puts
|
88
90
|
exit 8
|
89
91
|
end
|
90
92
|
|
93
|
+
# @param name [String]
|
91
94
|
def require_extension(name)
|
92
95
|
require_remote "https://pyrsmk.fra1.cdn.digitaloceanspaces.com" \
|
93
96
|
"/run_extensions/#{name}.rb"
|
@@ -100,7 +103,6 @@ RUNFILE = "Runfile.rb"
|
|
100
103
|
if !File.exists?(RUNFILE)
|
101
104
|
puts
|
102
105
|
puts "#{RUNFILE} does not exist".red
|
103
|
-
puts
|
104
106
|
exit 7
|
105
107
|
end
|
106
108
|
|
@@ -110,7 +112,6 @@ rescue SyntaxError => error
|
|
110
112
|
puts
|
111
113
|
puts "The Runfile contains a syntax error:".red
|
112
114
|
puts error.message.red
|
113
|
-
puts
|
114
115
|
exit 5
|
115
116
|
end
|
116
117
|
|
@@ -140,25 +141,27 @@ end
|
|
140
141
|
# Verify the latest release version.
|
141
142
|
if VERSION && HOMEPAGE
|
142
143
|
Thread.new do
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
144
|
+
begin
|
145
|
+
contents = URI.parse("#{HOMEPAGE}/master/run.gemspec")
|
146
|
+
.open
|
147
|
+
.read
|
148
|
+
version = /^\s*s.version\s*=\s*"(.+?)"\s*$/.match(contents)
|
149
|
+
if !version.nil?
|
150
|
+
next if File.exists?("/tmp/run_dismiss_#{version}")
|
151
|
+
current = VERSION.split "."
|
152
|
+
latest = version[1].split "."
|
153
|
+
if current[0].to_i < latest[0].to_i ||
|
154
|
+
current[1].to_i < latest[1].to_i ||
|
155
|
+
current[2].to_i < latest[2].to_i
|
156
|
+
puts "New ".cyan + version[1].yellow + " version released!".cyan
|
157
|
+
puts
|
158
|
+
puts "You can upgrade with:".cyan + "gem update run_tasks".yellow
|
159
|
+
puts
|
160
|
+
File.write "/tmp/run_dismiss_#{version}", ""
|
161
|
+
end
|
159
162
|
end
|
163
|
+
rescue
|
160
164
|
end
|
161
|
-
rescue
|
162
165
|
end
|
163
166
|
end
|
164
167
|
|
@@ -167,14 +170,15 @@ name = ARGV[0].gsub('-', '_').to_sym # Auto-fix hyphens to underscores.
|
|
167
170
|
if !@tasks.include?(name)
|
168
171
|
puts
|
169
172
|
puts "Unknown '#{name}' task".red
|
170
|
-
puts
|
171
173
|
exit 2
|
172
174
|
end
|
173
175
|
begin
|
174
|
-
|
176
|
+
run(name, *ARGV.slice(Range.new(1, ARGV.size - 1)))
|
175
177
|
rescue Interrupt
|
176
178
|
exit 3
|
177
179
|
rescue => error
|
178
|
-
puts
|
180
|
+
puts
|
181
|
+
puts "· #{error.message}".red
|
182
|
+
puts "· #{error.backtrace.first}".red
|
179
183
|
exit 4
|
180
184
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: run_tasks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aurélien Delogu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-02-
|
11
|
+
date: 2023-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: aurelien.delogu@gmail.com
|
@@ -40,7 +40,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
requirements: []
|
43
|
-
|
43
|
+
rubyforge_project:
|
44
|
+
rubygems_version: 2.5.2
|
44
45
|
signing_key:
|
45
46
|
specification_version: 4
|
46
47
|
summary: Run project tasks with ease
|