dratools 0.0.6 → 0.0.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 192a25f0320c972f93a91e15248500ed2cc102805c8d4e77041d68682bc2f6ec
4
- data.tar.gz: '0383e28bcc7b647f495cab8d72084648862bcc7bceec03b466e61d54a1e49655'
3
+ metadata.gz: 6155f21e4f394c155ef82c844cfc74fbeb0b437f1c0a31fa0d24947df4d5757f
4
+ data.tar.gz: 9e20ec3dbe6d7e33e93d3a3f1f45b8d267829d4b83f99d57b14a161d8fd81012
5
5
  SHA512:
6
- metadata.gz: be3585000365a676bdf099fb293e6e26cff03743e5a68f37d2c9a801e44e827855da291c64f5de4baf3ded324b84848e392788f6e8649e7aee66bf0289a62af3
7
- data.tar.gz: 3279c84c8d999e383eb1b8c7a87ab3001a6bbb77f0d4a082080ec43658520a3f827ea3121710d13ec841acf989ee29a528887474d6bd24c493647eeeb0688004
6
+ metadata.gz: a3d9c448ee4258317bdbf4c513bb3efdcb3aae132ca1676a23038ff31389288e4107b188ee861e00df367806b1d76d421b434677ba3fc86511347d74ed93cf7c
7
+ data.tar.gz: 2497ee2dbc090c9049e8958366b75e92891a261e0fddad8c4d55fd9d168da50ccb2f1d60b14bf0b7d7dfbdb92bba2584f47e999e7ec95077fe0e2036db5d2a90
data/docs/environment.md CHANGED
@@ -28,6 +28,8 @@
28
28
 
29
29
  `DRATOOLS_DOWNLOAD_COMMAND` を指定しない場合は、`curl`, `wget` の順で PATH にあるものを使います。`aria2c` は自動探索しません。`aria2c` を使う場合は `DRATOOLS_DOWNLOAD_COMMAND=aria2c` を指定してください。指定した場合はそのコマンドだけを使います。見つからない場合は、別のコマンドへ自動では切り替えません。
30
30
 
31
+ Windows では `PATHEXT` を使って実行ファイル拡張子を解決します。たとえば `curl.exe`, `wget.cmd` のような名前でも自動探索の対象になります。
32
+
31
33
  `DRATOOLS_DOWNLOAD_RETRY_COUNT` は、初回の試行を含まない「リトライ回数」です。`curl` にはそのまま渡します。`wget` と `aria2c` は総試行回数を受け取るため、内部で `リトライ回数 + 1` に変換します。
32
34
 
33
35
  ## 例
@@ -44,11 +44,11 @@ module Dratools
44
44
  VERSION_FLAGS = ['-v', '--version', 'version'].freeze
45
45
 
46
46
  SUBCOMMAND_SUMMARIES = {
47
- 'url' => 'ダウンロード URL を表示する (--json で JSON)',
47
+ 'url' => 'ダウンロード URL を表示する',
48
48
  'get' => 'ファイルをダウンロードする',
49
49
  'probe' => '短時間の接続確認だけ行う',
50
50
  'tree' => '探索ツリーを表示する',
51
- 'meta' => 'レコードのメタ情報を表示する (--json で生 JSON)',
51
+ 'meta' => 'レコードのメタ情報を表示する',
52
52
  'runs' => 'run accession の一覧を出力する',
53
53
  'size' => 'ダウンロード合計サイズを集計する'
54
54
  }.freeze
@@ -172,9 +172,37 @@ module Dratools
172
172
 
173
173
  def executable_command?(command_name)
174
174
  ENV.fetch('PATH', '').split(File::PATH_SEPARATOR).any? do |directory|
175
- command_path = File.join(directory, command_name)
176
- File.file?(command_path) && File.executable?(command_path)
175
+ command_candidates_for(command_name).any? do |candidate|
176
+ command_path = File.join(directory, candidate)
177
+ executable_file?(command_path)
178
+ end
179
+ end
180
+ end
181
+
182
+ def executable_file?(command_path)
183
+ return File.file?(command_path) if windows_platform?
184
+
185
+ File.file?(command_path) && File.executable?(command_path)
186
+ end
187
+
188
+ def command_candidates_for(command_name)
189
+ return [command_name] unless windows_platform?
190
+ return [command_name] unless File.extname(command_name).empty?
191
+
192
+ windows_executable_extensions.map { |extension| "#{command_name}#{extension}" }.uniq
193
+ end
194
+
195
+ def windows_executable_extensions
196
+ pathext = ENV.fetch('PATHEXT', '')
197
+ extensions = pathext.split(';').map(&:strip).reject(&:empty?).map do |extension|
198
+ extension.start_with?('.') ? extension : ".#{extension}"
177
199
  end
200
+ extensions = %w[.com .exe .bat .cmd] if extensions.empty?
201
+ extensions.map(&:downcase)
202
+ end
203
+
204
+ def windows_platform?
205
+ File::ALT_SEPARATOR == '\\'
178
206
  end
179
207
 
180
208
  def command_not_found_message
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Dratools
4
4
  NAME = 'dratools'
5
- VERSION = '0.0.6'
5
+ VERSION = '0.0.7'
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dratools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - kojix2
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
74
  requirements: []
75
- rubygems_version: 4.0.10
75
+ rubygems_version: 4.0.3
76
76
  specification_version: 4
77
77
  summary: DDBJ DRA toolkit
78
78
  test_files: []