run_tasks 1.2.8 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|