Harmonized CLI command version notation
Showing the changes to lib (1 of 2 files). Show all
Unified · Split
| @@ -40,8 +40,7 @@ class DocsCLI < Thor · 39 unmodified lines | ||
| 40 | 40 | TTY::Pager.new.page(output) |
| 41 | 41 | end |
| 42 | 42 | |
| 43 | − desc 'page <doc> [path] [--version] [--verbose] [--debug]', 'Generate a page (no indexing)' | |
| 44 | − option :version, type: :string | |
| 43 | + desc 'page (<doc> | <doc@version>) [path] [--verbose] [--debug]', 'Generate a page (no indexing)' | |
| 45 | 44 | option :verbose, type: :boolean |
| 46 | 45 | option :debug, type: :boolean |
| 47 | 46 | def page(name, path = '') |
| @@ -56,7 +55,8 @@ class DocsCLI < Thor · 8 unmodified lines | ||
| 56 | 55 | Docs.install_report :filter, :request, :doc |
| 57 | 56 | end |
| 58 | 57 | |
| 59 | − if Docs.generate_page(name, options[:version], path) | |
| 58 | + name, version = name.split(/@|~/) | |
| 59 | + if Docs.generate_page(name, version, path) | |
| 60 | 60 | puts 'Done' |
| 61 | 61 | else |
| 62 | 62 | puts "Failed!#{' (try running with --debug for more information)' unless options[:debug]}" |
| @@ -65,8 +65,7 @@ class DocsCLI < Thor · 2 unmodified lines | ||
| 65 | 65 | handle_doc_not_found_error(error) |
| 66 | 66 | end |
| 67 | 67 | |
| 68 | − desc 'generate <doc> [--version] [--verbose] [--debug] [--force] [--package]', 'Generate a documentation' | |
| 69 | − option :version, type: :string | |
| 68 | + desc 'generate (<doc> | <doc@version>) [--verbose] [--debug] [--force] [--package]', 'Generate a documentation' | |
| 70 | 69 | option :all, type: :boolean |
| 71 | 70 | option :verbose, type: :boolean |
| 72 | 71 | option :debug, type: :boolean |
| @@ -80,7 +79,7 @@ class DocsCLI < Thor · 7 unmodified lines | ||
| 80 | 79 | |
| 81 | 80 | require 'unix_utils' if options[:package] |
| 82 | 81 | |
| 83 | − doc = Docs.find(name, options[:version]) | |
| 82 | + doc = find_doc(name) | |
| 84 | 83 | |
| 85 | 84 | if doc < Docs::UrlScraper && !options[:force] |
| 86 | 85 | puts <<-TEXT.strip_heredoc |
| @@ -119,7 +118,7 @@ class DocsCLI < Thor · 32 unmodified lines | ||
| 119 | 118 | puts 'Done' |
| 120 | 119 | end |
| 121 | 120 | |
| 122 | − desc 'download (<doc> <doc@version>... | --default | --installed | --all)', 'Download documentations' | |
| 121 | + desc 'download (<doc> <doc@version>... | --default | --installed | --all)', 'Download documentation packages' | |
| 123 | 122 | option :default, type: :boolean |
| 124 | 123 | option :installed, type: :boolean |
| 125 | 124 | option :all, type: :boolean |
| @@ -142,7 +141,7 @@ class DocsCLI < Thor · 16 unmodified lines | ||
| 142 | 141 | handle_doc_not_found_error(error) |
| 143 | 142 | end |
| 144 | 143 | |
| 145 | − desc 'package <doc> <doc@version>...', 'Package documentations' | |
| 144 | + desc 'package <doc> <doc@version>...', 'Create documentation packages' | |
| 146 | 145 | def package(*names) |
| 147 | 146 | require 'unix_utils' |
| 148 | 147 | docs = find_docs(names) |
| @@ -267,17 +266,19 @@ class DocsCLI < Thor · 118 unmodified lines | ||
| 267 | 266 | |
| 268 | 267 | private |
| 269 | 268 | |
| 270 | − def find_docs(names) | |
| 271 | − names.flat_map do |name| | |
| 272 | − name, version = name.split(/@|~/) | |
| 273 | − if version == 'all' | |
| 274 | − Docs.find(name, false).versions | |
| 275 | − else | |
| 276 | − Docs.find(name, version) | |
| 277 | − end | |
| 269 | + def find_doc(name) | |
| 270 | + name, version = name.split(/@|~/) | |
| 271 | + if version == 'all' | |
| 272 | + Docs.find(name, false).versions | |
| 273 | + else | |
| 274 | + Docs.find(name, version) | |
| 278 | 275 | end |
| 279 | 276 | end |
| 280 | 277 | |
| 278 | + def find_docs(names) | |
| 279 | + names.flat_map {|name| find_doc(name)} | |
| 280 | + end | |
| 281 | + | |
| 281 | 282 | def find_docs_by_slugs(slugs) |
| 282 | 283 | slugs.flat_map do |slug| |
| 283 | 284 | slug, version = slug.split(/~/) |