Class: Fontist::CLI
- Inherits:
-
Thor
- Object
- Thor
- Fontist::CLI
- Includes:
- ClassOptions
- Defined in:
- lib/fontist/cli.rb,
lib/fontist/cli/class_options.rb
Defined Under Namespace
Modules: ClassOptions
Constant Summary collapse
- STATUS_SUCCESS =
0- STATUS_UNKNOWN_ERROR =
1- STATUS_NON_SUPPORTED_FONT_ERROR =
2- STATUS_MISSING_FONT_ERROR =
3- STATUS_LICENSING_ERROR =
4- STATUS_MANIFEST_COULD_NOT_BE_FOUND_ERROR =
5- STATUS_MANIFEST_COULD_NOT_BE_READ_ERROR =
6- STATUS_FONT_INDEX_CORRUPTED =
7- STATUS_REPO_NOT_FOUND =
8- STATUS_MAIN_REPO_NOT_FOUND =
9- STATUS_REPO_COULD_NOT_BE_UPDATED =
10- STATUS_MANUAL_FONT_ERROR =
11- STATUS_SIZE_LIMIT_ERROR =
12- STATUS_FORMULA_NOT_FOUND =
13- STATUS_FONTCONFIG_NOT_FOUND =
14- STATUS_FONTCONFIG_FILE_NOT_FOUND =
15- ERROR_TO_STATUS =
{ Fontist::Errors::UnsupportedFontError => [STATUS_NON_SUPPORTED_FONT_ERROR], Fontist::Errors::MissingFontError => [STATUS_MISSING_FONT_ERROR], Fontist::Errors::SizeLimitError => [ STATUS_SIZE_LIMIT_ERROR, :append, "Please specify higher `--size-limit`, or use the `--newest` or " \ "`--smallest` options.", ], Fontist::Errors::ManualFontError => [STATUS_MANUAL_FONT_ERROR], Fontist::Errors::LicensingError => [STATUS_LICENSING_ERROR], Fontist::Errors::ManifestCouldNotBeFoundError => [STATUS_MANIFEST_COULD_NOT_BE_FOUND_ERROR, :overwrite, "Manifest could not be found."], Fontist::Errors::ManifestCouldNotBeReadError => [STATUS_MANIFEST_COULD_NOT_BE_READ_ERROR, :overwrite, "Manifest could not be read."], Fontist::Errors::FontIndexCorrupted => [STATUS_FONT_INDEX_CORRUPTED], Fontist::Errors::RepoNotFoundError => [STATUS_REPO_NOT_FOUND], Fontist::Errors::MainRepoNotFoundError => [STATUS_MAIN_REPO_NOT_FOUND], Fontist::Errors::FormulaNotFoundError => [STATUS_FORMULA_NOT_FOUND], Fontist::Errors::FontconfigNotFoundError => [STATUS_FONTCONFIG_NOT_FOUND], Fontist::Errors::FontconfigFileNotFoundError => [STATUS_FONTCONFIG_FILE_NOT_FOUND], }.freeze
Class Method Summary collapse
Instance Method Summary collapse
- #create_formula(url) ⇒ Object
- #install(font) ⇒ Object
- #list(font = nil) ⇒ Object
- #manifest_install(manifest) ⇒ Object
- #manifest_locations(manifest) ⇒ Object
- #rebuild_index ⇒ Object
- #status(font = nil) ⇒ Object
- #uninstall(font) ⇒ Object
- #update ⇒ Object
Methods included from ClassOptions
Class Method Details
.exit_on_failure? ⇒ Boolean
54 55 56 |
# File 'lib/fontist/cli.rb', line 54 def self.exit_on_failure? false end |
Instance Method Details
#create_formula(url) ⇒ Object
184 185 186 187 188 189 190 |
# File 'lib/fontist/cli.rb', line 184 def create_formula(url) () require "fontist/import/create_formula" name = Fontist::Import::CreateFormula.new(url, ).call Fontist.ui.say("#{name} formula has been successfully created") success end |
#install(font) ⇒ Object
93 94 95 96 97 98 99 100 |
# File 'lib/fontist/cli.rb', line 93 def install(font) () confirmation = [:accept_all_licenses] ? "yes" : "no" Fontist::Font.install(font, .merge(confirmation: confirmation)) success rescue Fontist::Errors::GeneralError => e handle_error(e) end |
#list(font = nil) ⇒ Object
126 127 128 129 130 131 132 133 |
# File 'lib/fontist/cli.rb', line 126 def list(font = nil) () formulas = Fontist::Font.list(font) print_list(formulas) success rescue Fontist::Errors::GeneralError => e handle_error(e) end |
#manifest_install(manifest) ⇒ Object
164 165 166 167 168 169 170 171 172 173 174 175 176 |
# File 'lib/fontist/cli.rb', line 164 def manifest_install(manifest) () paths = Fontist::Manifest::Install.from_file( manifest, confirmation: [:accept_all_licenses] ? "yes" : "no", hide_licenses: [:hide_licenses] ) print_yaml(paths) success rescue Fontist::Errors::GeneralError => e handle_error(e) end |
#manifest_locations(manifest) ⇒ Object
148 149 150 151 152 153 154 155 |
# File 'lib/fontist/cli.rb', line 148 def manifest_locations(manifest) () paths = Fontist::Manifest::Locations.from_file(manifest) print_yaml(paths) success rescue Fontist::Errors::GeneralError => e handle_error(e) end |
#rebuild_index ⇒ Object
199 200 201 202 203 204 |
# File 'lib/fontist/cli.rb', line 199 def rebuild_index () Fontist::Index.rebuild Fontist.ui.say("Formula index has been rebuilt.") STATUS_SUCCESS end |
#status(font = nil) ⇒ Object
115 116 117 118 119 120 121 122 123 |
# File 'lib/fontist/cli.rb', line 115 def status(font = nil) () paths = Fontist::Font.status(font) return error("No font is installed.", STATUS_MISSING_FONT_ERROR) if paths.empty? success rescue Fontist::Errors::GeneralError => e handle_error(e) end |
#uninstall(font) ⇒ Object
103 104 105 106 107 108 109 110 111 |
# File 'lib/fontist/cli.rb', line 103 def uninstall(font) () fonts_paths = Fontist::Font.uninstall(font) Fontist.ui.success("These fonts are removed:") Fontist.ui.success(fonts_paths.join("\n")) success rescue Fontist::Errors::GeneralError => e handle_error(e) end |
#update ⇒ Object
136 137 138 139 140 141 142 143 144 |
# File 'lib/fontist/cli.rb', line 136 def update () Formula.update_formulas_repo Fontist.ui.success("Formulas have been successfully updated.") success rescue Fontist::Errors::RepoCouldNotBeUpdatedError => e Fontist.ui.error(e.) STATUS_REPO_COULD_NOT_BE_UPDATED end |