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.
Files changed (3) hide show
  1. checksums.yaml +5 -5
  2. data/src/run.rb +38 -34
  3. metadata +4 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: '080afe6e5a7c8c122e4c1df3df0e43f881294ea254735680d912a0c373dd3a0a'
4
- data.tar.gz: c54fcd1fac401c4b66ae21d3baa0e87dbe555201e4c3d0f389088f078729b7c8
2
+ SHA1:
3
+ metadata.gz: 0de82fa9c8781db30c68460761abbef5daf589b7
4
+ data.tar.gz: 78d78c13f4dd1c98806e228eeb7187e1b32e2a04
5
5
  SHA512:
6
- metadata.gz: 6125dfb0293f121608a217519e7b587b4a348fa2d986786e32aa3f6a0152a88aed07976f8c3485b84b4dd0b40ff2f2a672dacfca9f5838295134c4df388e62aa
7
- data.tar.gz: 56611fd8558b70f6a2e59cdf778fefadea99eb924a06b9e08a434b1cb23f7345e4fe44092c009fb35d983e957ed5c51082902ed8ae2f25d10d3967a2e9a7ca85
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
- # Define a task.
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
- # Call a task.
54
- def call(name, *arguments, **options)
55
- @tasks[name][:block].call *arguments, **options
56
- end
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
- # Run a shell command.
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(command)
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
- contents = URI.parse("#{HOMEPAGE}/master/run.gemspec")
144
- .open
145
- .read
146
- version = /^\s*s.version\s*=\s*"(.+?)"\s*$/.match(contents)
147
- if !version.nil?
148
- next if File.exists?("/tmp/run_dismiss_#{version}")
149
- current = VERSION.split "."
150
- latest = version[1].split "."
151
- if current[0].to_i < latest[0].to_i ||
152
- current[1].to_i < latest[1].to_i ||
153
- current[2].to_i < latest[2].to_i
154
- puts "New ".cyan + version[1].yellow + " version released!".cyan
155
- puts
156
- puts "You can upgrade with:".cyan + "gem update run_tasks".yellow
157
- puts
158
- File.write "/tmp/run_dismiss_#{version}", ""
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
- call name, *ARGV.slice(1..)
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 error.message.red
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.2.8
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-15 00:00:00.000000000 Z
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
- rubygems_version: 3.1.6
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