Merge pull request #1536 from richardkmichael/harmonized-version

Harmonized CLI command version notation
pull/1514/head
Simon Legner 4 years ago committed by GitHub
commit 1c3ceca2d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -68,9 +68,9 @@ Follow the following steps to update documentations to their latest version:
2. Check if the license is still correct. If you update `options[:attribution]`, also update the documentation's entry in the array in [`assets/javascripts/templates/pages/about_tmpl.coffee`](../assets/javascripts/templates/pages/about_tmpl.coffee) to match. 2. Check if the license is still correct. If you update `options[:attribution]`, also update the documentation's entry in the array in [`assets/javascripts/templates/pages/about_tmpl.coffee`](../assets/javascripts/templates/pages/about_tmpl.coffee) to match.
3. If the documentation has a custom icon, ensure the icons in <code>public/icons/*your_scraper_name*/</code> are up-to-date. If you pull the updated icon from a place different than the one specified in the `SOURCE` file, make sure to replace the old link with the new one. 3. If the documentation has a custom icon, ensure the icons in <code>public/icons/*your_scraper_name*/</code> are up-to-date. If you pull the updated icon from a place different than the one specified in the `SOURCE` file, make sure to replace the old link with the new one.
4. If `self.links` is defined, check if the urls are still correct. 4. If `self.links` is defined, check if the urls are still correct.
5. Generate the docs using `thor docs:generate <doc>`. 5. Generate the docs using `thor docs:generate <doc@version>`.
6. Make sure `thor docs:generate` doesn't show errors and that the documentation still works well. Verify locally that everything works and that the categorization of entries is still good. Often, updates will require code changes in the scraper or its filters to tweak some new markup in the source website or to categorize new entries. 6. Make sure `thor docs:generate` doesn't show errors and that the documentation still works well. Verify locally that everything works and that the categorization of entries is still good. Often, updates will require code changes in the scraper or its filters to tweak some new markup in the source website or to categorize new entries.
7. Repeat steps 5 and 6 for all versions that you updated. `thor docs:generate` accepts a `--version` argument to specify which version to scrape. 7. Repeat steps 5 and 6 for all versions that you updated.
8. Create a PR and make sure to fill the checklist in section B of the PR template (remove the other sections). 8. Create a PR and make sure to fill the checklist in section B of the PR template (remove the other sections).
## Coding conventions ## Coding conventions

@ -40,8 +40,7 @@ class DocsCLI < Thor
TTY::Pager.new.page(output) TTY::Pager.new.page(output)
end end
desc 'page <doc> [path] [--version] [--verbose] [--debug]', 'Generate a page (no indexing)' desc 'page (<doc> | <doc@version>) [path] [--verbose] [--debug]', 'Generate a page (no indexing)'
option :version, type: :string
option :verbose, type: :boolean option :verbose, type: :boolean
option :debug, type: :boolean option :debug, type: :boolean
def page(name, path = '') def page(name, path = '')
@ -56,7 +55,8 @@ class DocsCLI < Thor
Docs.install_report :filter, :request, :doc Docs.install_report :filter, :request, :doc
end end
if Docs.generate_page(name, options[:version], path) name, version = name.split(/@|~/)
if Docs.generate_page(name, version, path)
puts 'Done' puts 'Done'
else else
puts "Failed!#{' (try running with --debug for more information)' unless options[:debug]}" puts "Failed!#{' (try running with --debug for more information)' unless options[:debug]}"
@ -65,8 +65,7 @@ class DocsCLI < Thor
handle_doc_not_found_error(error) handle_doc_not_found_error(error)
end end
desc 'generate <doc> [--version] [--verbose] [--debug] [--force] [--package]', 'Generate a documentation' desc 'generate (<doc> | <doc@version>) [--verbose] [--debug] [--force] [--package]', 'Generate a documentation'
option :version, type: :string
option :all, type: :boolean option :all, type: :boolean
option :verbose, type: :boolean option :verbose, type: :boolean
option :debug, type: :boolean option :debug, type: :boolean
@ -80,7 +79,7 @@ class DocsCLI < Thor
require 'unix_utils' if options[:package] require 'unix_utils' if options[:package]
doc = Docs.find(name, options[:version]) doc = find_doc(name)
if doc < Docs::UrlScraper && !options[:force] if doc < Docs::UrlScraper && !options[:force]
puts <<-TEXT.strip_heredoc puts <<-TEXT.strip_heredoc
@ -119,7 +118,7 @@ class DocsCLI < Thor
puts 'Done' puts 'Done'
end end
desc 'download (<doc> <doc@version>... | --default | --installed | --all)', 'Download documentations' desc 'download (<doc> <doc@version>... | --default | --installed | --all)', 'Download documentation packages'
option :default, type: :boolean option :default, type: :boolean
option :installed, type: :boolean option :installed, type: :boolean
option :all, type: :boolean option :all, type: :boolean
@ -142,7 +141,7 @@ class DocsCLI < Thor
handle_doc_not_found_error(error) handle_doc_not_found_error(error)
end end
desc 'package <doc> <doc@version>...', 'Package documentations' desc 'package <doc> <doc@version>...', 'Create documentation packages'
def package(*names) def package(*names)
require 'unix_utils' require 'unix_utils'
docs = find_docs(names) docs = find_docs(names)
@ -267,8 +266,7 @@ class DocsCLI < Thor
private private
def find_docs(names) def find_doc(name)
names.flat_map do |name|
name, version = name.split(/@|~/) name, version = name.split(/@|~/)
if version == 'all' if version == 'all'
Docs.find(name, false).versions Docs.find(name, false).versions
@ -276,6 +274,9 @@ class DocsCLI < Thor
Docs.find(name, version) Docs.find(name, version)
end end
end end
def find_docs(names)
names.flat_map {|name| find_doc(name)}
end end
def find_docs_by_slugs(slugs) def find_docs_by_slugs(slugs)

Loading…
Cancel
Save