runfile 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5a340ad5324cc9b24104fc460c171300cc2ab9690bb8bdfa2b38442b3ddf81a
4
- data.tar.gz: e3f0fe2e7c4ba4fca9058d10f5caffc2daa76d5f0810aa5a63d646d2a23347d4
3
+ metadata.gz: 41aa2631882de8a7c759aa386aa9a2f1e6ddd69446af65e49bc7b30f274c1d49
4
+ data.tar.gz: 0cc7a2ccbcd5095acc00cc5b1484b3e5122061141f7db0b9b9e18bbe469622b7
5
5
  SHA512:
6
- metadata.gz: 0f94f10d4feda0300878584b68c1af769bc1a81392ee52f7716d89d0d7fe376cf9d20cc2cbb8bc0ef35d5574b469de038df67e99dbaa0a077ca4fed7a7cb548c
7
- data.tar.gz: 5983f010e720484acdb6b013248c32f4ed104180e7fc05218c93abfaf1a3eea7775b95e7e6e7cbe2c0871316056fe4d99c27b7e1b93b13524782015199a66a8a
6
+ metadata.gz: 3911f5c10a4883572618e19cdfda6dfedb17502bd0fd9cb090d09c48622d0924eab21590832a24d8a050af860b34cb64361bc56f604e23c27088cdbd12b06ded
7
+ data.tar.gz: a16d11d7e4d574540bc850192c86ae972118ab383c681ca0a1fe51eda75520cdb033253f1e8b7bd57597f886c2bfb22f9c9d9a16a1e636a4bd8b6856a001481b
data/README.md CHANGED
@@ -120,68 +120,69 @@ $ run example --help
120
120
 
121
121
  For a more formal documentation, see the [User Guide](https://runfile.dannyb.co/).
122
122
 
123
- Note that the current user guide is for the stable version 0.12.0.
124
-
125
123
  ## Breaking Changes in 1.0.0
126
124
 
127
- If you are using a version earlier than 1.0, note that version 1.0.0 includes
128
- some breaking changes. You can read more about them in
129
- [this Pull Request](https://github.com/DannyBen/runfile/pull/50).
130
-
131
- ### Upgrading to 1.0.0
132
-
133
125
  <details>
134
126
  <summary>Show section</summary>
135
127
 
136
- ### No more `.runfile` config
128
+ ---
129
+
130
+ If you are using a version earlier than 1.0, note that version 1.0.0 includes
131
+ some breaking changes. You can read more about them in
132
+ [this Pull Request](https://github.com/DannyBen/runfile/pull/50).
133
+
134
+ ### Upgrading to 1.0.0
135
+
136
+ #### No more `.runfile` config
137
137
 
138
138
  If you have used the multi-runfile config file, this no longer exists.
139
139
  Use a standard `runfile` instead, along with the `import` directive.
140
140
 
141
- ### No more `action :global`
141
+ #### No more `action :global`
142
142
 
143
143
  If you have used the `action :global do` notation, this is replaced with the
144
144
  simpler use `action do` instead. Also, there is no more need for
145
145
  empty `usage ''`, just delete it if you have it in your runfiles.
146
146
 
147
- ### No more `execute` directive
147
+ #### No more `execute` directive
148
148
 
149
149
  If you have used it to cross-call other actions, it is no longer available. As
150
150
  an alternative, you can define common code in separate classes and `require`
151
151
  them, or use the new `helpers` directive to define functions that will be
152
152
  available to all actions.
153
153
 
154
- ### Code outside of actions should be inside `helpers`
154
+ #### Code outside of actions should be inside `helpers`
155
155
 
156
156
  If your runfiles include other ruby code, especially `def method`, you should
157
157
  now use the new `helpers` block and tuck this code inside it.
158
158
 
159
- ### No more need for `trap(:INT)`
159
+ #### No more need for `trap(:INT)`
160
160
 
161
161
  If your old runfiles trap the `Interrupt` signal, there is no longer a need to
162
162
  do so, as it is trapped by default.
163
163
 
164
- ### Colsole is included
164
+ #### Colsole is included
165
165
 
166
166
  If your runfiles `required` and `include` Colsole, there is no longer a need to
167
167
  do it. Colsole is bundled and available in actions.
168
168
 
169
- ### Long flags before short flags
169
+ #### Long flags before short flags
170
170
 
171
171
  This is a cosmetic change for consistency. All generated output shows long flags
172
172
  before short flags `--force, -f` instead of `-f, --force`. Update your custom
173
173
  `usage` directives accordingly.
174
174
 
175
- ### Examples no longer add implicit 'run'
175
+ #### Examples no longer add implicit 'run'
176
176
 
177
177
  If you were using the `example` directive, it will no longer add the initial
178
178
  `run` in front of your examples. Add it yourself. This is intended to allow
179
179
  providing more elaborate examples.
180
180
 
181
- ### RunfileTasks
181
+ #### RunfileTasks
182
182
 
183
- The `RunfileTasks` gem is also released as a pre-release, if you are using it
184
- make sure to install the latest release candidate.
183
+ The [runfile-tasks gem](https://github.com/dannyben/runfile-tasks) is also
184
+ updated to 1.x, with a modified syntax. If you are using it, make sure to
185
+ upgrade it as well.
185
186
 
186
187
  </details>
187
188
 
@@ -3,7 +3,7 @@ require 'json'
3
3
  # Define helper methods
4
4
  helpers do
5
5
  def files
6
- Dir['*'].sort
6
+ Dir['*']
7
7
  end
8
8
  end
9
9
 
@@ -27,7 +27,7 @@ module Runfile
27
27
  run
28
28
  rescue Runfile::ExitWithUsage => e
29
29
  say e.message
30
- 1
30
+ e.exit_code
31
31
  rescue Runfile::UserError => e
32
32
  allow_debug e
33
33
  say! "mib` #{e.class} `"
@@ -38,9 +38,7 @@ module Runfile
38
38
  1
39
39
  rescue => e
40
40
  allow_debug e
41
- origin = e.backtrace_locations.first
42
- location = "#{origin.path}:#{origin.lineno}"
43
- say! "rib` #{e.class} ` in nu`#{location}`"
41
+ say! "rib` #{e.class} ` in nu`#{origin(e)}`"
44
42
  say! e.message
45
43
  say! "\nPrefix with nu`DEBUG=1` for full backtrace" unless ENV['DEBUG']
46
44
  1
@@ -55,6 +53,11 @@ module Runfile
55
53
  say! '---'
56
54
  end
57
55
 
56
+ def origin(e)
57
+ (e.backtrace_locations&.first.to_s || e.backtrace&.first || 'unknown')
58
+ .tr '`', "'"
59
+ end
60
+
58
61
  def rootfile
59
62
  if File.file? 'runfile'
60
63
  Userfile.new 'runfile'
@@ -5,7 +5,15 @@ module Runfile
5
5
 
6
6
  class Error < StandardError; end
7
7
  class UserError < Error; end
8
- class ExitWithUsage < Error; end
8
+
9
+ class ExitWithUsage < Error
10
+ attr_reader :exit_code
11
+
12
+ def initialize(message = '', exit_code: nil)
13
+ @exit_code = exit_code || 1
14
+ super message
15
+ end
16
+ end
9
17
 
10
18
  class ActionNotFound < UserError; end
11
19
  class GemNotFound < UserError; end
@@ -13,7 +13,7 @@ module Runfile
13
13
  def call_docopt(docopt, version: nil, argv: nil)
14
14
  DocoptNG.docopt docopt, argv: argv, version: version
15
15
  rescue DocoptNG::Exit => e
16
- raise ExitWithUsage, e.message
16
+ raise ExitWithUsage.new(exit_code: e.exit_code), e.message
17
17
  rescue DocoptNG::DocoptLanguageError => e
18
18
  raise DocoptError, "There is an error in your runfile:\nnb`#{e.message}`"
19
19
  end
@@ -46,7 +46,7 @@ module Runfile
46
46
  def guests
47
47
  @guests ||= begin
48
48
  result = imports.map do |glob, context|
49
- Dir.glob("#{glob}.runfile").sort.map do |guest_path|
49
+ Dir.glob("#{glob}.runfile").map do |guest_path|
50
50
  Userfile.new guest_path, context: context, host: self
51
51
  end
52
52
  end
@@ -1,3 +1,3 @@
1
1
  module Runfile
2
- VERSION = '1.0.1'
2
+ VERSION = '1.0.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runfile
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-09 00:00:00.000000000 Z
11
+ date: 2023-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colsole
@@ -37,6 +37,9 @@ dependencies:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0.7'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.7.1
40
43
  type: :runtime
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -44,6 +47,9 @@ dependencies:
44
47
  - - "~>"
45
48
  - !ruby/object:Gem::Version
46
49
  version: '0.7'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.7.1
47
53
  - !ruby/object:Gem::Dependency
48
54
  name: gtx
49
55
  requirement: !ruby/object:Gem::Requirement
@@ -133,7 +139,7 @@ metadata:
133
139
  source_code_uri: https://github.com/DannyBen/runfile
134
140
  bug_tracker_uri: https://github.com/DannyBen/runfile/issues
135
141
  rubygems_mfa_required: 'true'
136
- post_install_message:
142
+ post_install_message:
137
143
  rdoc_options: []
138
144
  require_paths:
139
145
  - lib
@@ -141,15 +147,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
141
147
  requirements:
142
148
  - - ">="
143
149
  - !ruby/object:Gem::Version
144
- version: '2.7'
150
+ version: '3.0'
145
151
  required_rubygems_version: !ruby/object:Gem::Requirement
146
152
  requirements:
147
153
  - - ">="
148
154
  - !ruby/object:Gem::Version
149
155
  version: '0'
150
156
  requirements: []
151
- rubygems_version: 3.4.6
152
- signing_key:
157
+ rubygems_version: 3.3.26
158
+ signing_key:
153
159
  specification_version: 4
154
160
  summary: Local command line for your projects
155
161
  test_files: []