lib/tldr/cli/commands.rb in tldr-cli-0.1.0 vs lib/tldr/cli/commands.rb in tldr-cli-0.2.0
- old
+ new
@@ -61,10 +61,20 @@
# short '-l'
# long '--list'
# desc 'list all entries in the local database'
# end
+ option :lang do
+ optional
+ short '-l'
+ long '--lang=string'
+ default 'en'
+ permit %w[ar bn bs ca cs da de en es fa fi fr hi id it ja ko lo ml ne nl no pl pt_BR pt_PT ro ru sh sr sv ta th
+ tr uk uz zh zh_TW]
+ desc 'select language of page to be displayed (default: en)'
+ end
+
option :platform do
optional
short '-p'
long '--platform=string'
default 'common'
@@ -84,26 +94,30 @@
elsif params[:help]
print help
elsif params[:version]
version
elsif params[:query]
- query = params[:query]
- platform = params[:platform]
+ query, lang, platform =
+ params.to_h.values_at(:query, :lang, :platform)
- response = Faraday.get("#{URL_BASE}/#{platform}/#{query}#{URL_SUFFIX}")
+ page_path = "/#{platform}/#{query}"
+ response = Faraday.get(remote_path(page_path, lang: lang))
return not_found unless response.success?
- markdown = TTY::Markdown.parse(response.body, symbols: { override: { bullet: '-' } })
- puts markdown
+ render_markdown(response.body)
else
print help
end
end
private
+ def render_markdown(content)
+ puts TTY::Markdown.parse(content, symbols: { override: { bullet: '-' } })
+ end
+
def version
puts <<~MESSAGE
tldr v#{TLDR::CLI::VERSION} (v#{TLDR::CLI::VERSION})
Copyright (C) 2023 Daniel Vinciguerra
Source available at https://github.com/dvinciguerra/tldr-cli
@@ -113,9 +127,14 @@
def not_found
puts <<~MESSAGE
This page doesn't exist yet!
Submit new pages here: https://github.com/tldr-pages/tldr
MESSAGE
+ end
+
+ def remote_path(fragment, lang: 'en', relative: false)
+ lang = lang == 'en' ? '' : ".#{lang}"
+ "#{relative ? '' : URL_BASE}#{lang}#{fragment}#{URL_SUFFIX}"
end
end
end
end