rbcli 0.3.3 → 0.4.0
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 +4 -4
- data/LICENSE.md +9 -0
- data/LICENSE.txt +5 -670
- data/README.md +64 -160
- data/VERSION +1 -0
- data/exe/rbcli +181 -242
- data/lib/rbcli/components/commands/command.rb +120 -0
- data/lib/rbcli/components/commands/command.rb.erb +55 -0
- data/lib/rbcli/components/commands/command_old.rb +105 -0
- data/lib/rbcli/components/commands/script.rb.erb +43 -0
- data/{lib-sh → lib/rbcli/components/commands/scriptwrapper}/lib-rbcli.sh +29 -34
- data/lib/rbcli/components/commands/scriptwrapper/scriptwrapper.rb +64 -0
- data/lib/rbcli/components/config/backend.rb +102 -0
- data/lib/rbcli/components/config/backends/env.rb +67 -0
- data/lib/rbcli/components/config/backends/helpers/deep_assign.rb +47 -0
- data/lib/rbcli/components/config/backends/ini.rb +53 -0
- data/lib/rbcli/components/config/backends/json.rb +32 -0
- data/lib/rbcli/components/config/backends/null.rb +32 -0
- data/lib/rbcli/components/config/backends/toml.rb +38 -0
- data/lib/rbcli/components/config/backends/yaml.rb +31 -0
- data/lib/rbcli/components/config/component.rb +33 -0
- data/lib/rbcli/components/config/config.rb +165 -0
- data/lib/rbcli/components/config/config_of_death.rb +12 -0
- data/lib/rbcli/components/config/template.rb.erb +36 -0
- data/lib/rbcli/components/core/configurate.rb +63 -0
- data/lib/rbcli/components/core/engine.rb +30 -0
- data/lib/rbcli/components/core/warehouse.rb +18 -0
- data/lib/rbcli/components/envvars/component.rb +20 -0
- data/lib/rbcli/components/envvars/template.rb.erb +24 -0
- data/lib/rbcli/components/hooks/component.rb +36 -0
- data/lib/rbcli/components/hooks/template.rb.erb +20 -0
- data/lib/rbcli/components/logger/component.rb +32 -0
- data/lib/rbcli/components/logger/logger.rb +155 -0
- data/lib/rbcli/components/logger/lolcat/lol.rb +71 -0
- data/lib/rbcli/components/logger/template.rb.erb +40 -0
- data/lib/rbcli/components/parser/component.rb +33 -0
- data/lib/rbcli/{util → components/parser/optimist}/optimist.rb +134 -48
- data/lib/rbcli/components/parser/parser.rb +178 -0
- data/lib/rbcli/components/parser/template.rb.erb +35 -0
- data/lib/rbcli/components/updatechecker/common/common.rb +52 -0
- data/lib/rbcli/components/updatechecker/component.rb +42 -0
- data/lib/rbcli/components/updatechecker/gem_checker.rb +40 -0
- data/lib/rbcli/components/updatechecker/github_checker.rb +46 -0
- data/lib/rbcli/components/updatechecker/template.rb.erb +14 -0
- data/lib/rbcli/util/deprecation_warning.rb +41 -55
- data/lib/rbcli/util/errors.rb +12 -0
- data/lib/rbcli/util/exit.rb +12 -0
- data/lib/rbcli/util/hash_deep_symbolize.rb +26 -41
- data/lib/rbcli/util/string_compression.rb +10 -0
- data/lib/rbcli/version.rb +5 -20
- data/lib/rbcli-tool/helpers.rb +58 -0
- data/lib/rbcli-tool/skeletons/gem.rb.erb +17 -0
- data/lib/rbcli-tool/skeletons/portable.rb.erb +48 -0
- data/lib/rbcli.rb +19 -50
- data/sig/rbcli.rbs +9 -0
- metadata +125 -496
- data/.gitignore +0 -60
- data/.rakeTasks +0 -7
- data/.rbenv-gemsets +0 -1
- data/.travis.yml +0 -5
- data/CHANGELOG.md +0 -193
- data/CODE_OF_CONDUCT.md +0 -74
- data/Gemfile +0 -6
- data/Gemfile.lock +0 -92
- data/Rakefile +0 -10
- data/bin/console +0 -33
- data/bin/setup +0 -28
- data/docs/404.html +0 -59
- data/docs/advanced/automatic_updates/index.html +0 -1174
- data/docs/advanced/command_types/index.html +0 -1262
- data/docs/advanced/distributed_state_locking/index.html +0 -1176
- data/docs/advanced/hooks/index.html +0 -1192
- data/docs/advanced/index.html +0 -1140
- data/docs/advanced/index.xml +0 -75
- data/docs/advanced/interactive_commands/index.html +0 -1177
- data/docs/advanced/logging/index.html +0 -1184
- data/docs/advanced/remote_execution/index.html +0 -1190
- data/docs/advanced/state_storage/index.html +0 -1281
- data/docs/advanced/user_config_files/index.html +0 -1209
- data/docs/categories/index.html +0 -1146
- data/docs/categories/index.xml +0 -11
- data/docs/css/atom-one-dark-reasonable.css +0 -77
- data/docs/css/auto-complete.css +0 -47
- data/docs/css/featherlight.min.css +0 -8
- data/docs/css/fontawesome-all.min.css +0 -1
- data/docs/css/hugo-theme.css +0 -254
- data/docs/css/hybrid.css +0 -102
- data/docs/css/nucleus.css +0 -615
- data/docs/css/perfect-scrollbar.min.css +0 -2
- data/docs/css/tags.css +0 -49
- data/docs/css/theme-blue.css +0 -111
- data/docs/css/theme-green.css +0 -111
- data/docs/css/theme-red.css +0 -111
- data/docs/css/theme.css +0 -1136
- data/docs/development/changelog/index.html +0 -1420
- data/docs/development/code_of_conduct/index.html +0 -1222
- data/docs/development/contributing/index.html +0 -1201
- data/docs/development/index.html +0 -1140
- data/docs/development/index.xml +0 -40
- data/docs/development/license/index.html +0 -1165
- data/docs/fonts/Inconsolata.eot +0 -0
- data/docs/fonts/Inconsolata.svg +0 -1
- data/docs/fonts/Inconsolata.ttf +0 -0
- data/docs/fonts/Inconsolata.woff +0 -0
- data/docs/fonts/Novecentosanswide-Normal-webfont.eot +0 -0
- data/docs/fonts/Novecentosanswide-Normal-webfont.svg +0 -1
- data/docs/fonts/Novecentosanswide-Normal-webfont.ttf +0 -0
- data/docs/fonts/Novecentosanswide-Normal-webfont.woff +0 -0
- data/docs/fonts/Novecentosanswide-Normal-webfont.woff2 +0 -0
- data/docs/fonts/Novecentosanswide-UltraLight-webfont.eot +0 -0
- data/docs/fonts/Novecentosanswide-UltraLight-webfont.svg +0 -1
- data/docs/fonts/Novecentosanswide-UltraLight-webfont.ttf +0 -0
- data/docs/fonts/Novecentosanswide-UltraLight-webfont.woff +0 -0
- data/docs/fonts/Novecentosanswide-UltraLight-webfont.woff2 +0 -0
- data/docs/fonts/Work_Sans_200.eot +0 -0
- data/docs/fonts/Work_Sans_200.svg +0 -1
- data/docs/fonts/Work_Sans_200.ttf +0 -0
- data/docs/fonts/Work_Sans_200.woff +0 -0
- data/docs/fonts/Work_Sans_200.woff2 +0 -0
- data/docs/fonts/Work_Sans_300.eot +0 -0
- data/docs/fonts/Work_Sans_300.svg +0 -1
- data/docs/fonts/Work_Sans_300.ttf +0 -0
- data/docs/fonts/Work_Sans_300.woff +0 -0
- data/docs/fonts/Work_Sans_300.woff2 +0 -0
- data/docs/fonts/Work_Sans_500.eot +0 -0
- data/docs/fonts/Work_Sans_500.svg +0 -1
- data/docs/fonts/Work_Sans_500.ttf +0 -0
- data/docs/fonts/Work_Sans_500.woff +0 -0
- data/docs/fonts/Work_Sans_500.woff2 +0 -0
- data/docs/images/clippy.svg +0 -1
- data/docs/images/favicon.png +0 -0
- data/docs/images/gopher-404.jpg +0 -0
- data/docs/imported/changelog/index.html +0 -1449
- data/docs/imported/index.html +0 -1191
- data/docs/imported/index.xml +0 -23
- data/docs/index.html +0 -1138
- data/docs/index.json +0 -183
- data/docs/index.xml +0 -138
- data/docs/js/auto-complete.js +0 -3
- data/docs/js/clipboard.min.js +0 -7
- data/docs/js/featherlight.min.js +0 -9
- data/docs/js/highlight.pack.js +0 -6
- data/docs/js/html5shiv-printshiv.min.js +0 -4
- data/docs/js/hugo-learn.js +0 -94
- data/docs/js/jquery-3.3.1.min.js +0 -2
- data/docs/js/jquery.sticky.js +0 -288
- data/docs/js/learn.js +0 -459
- data/docs/js/lunr.min.js +0 -6
- data/docs/js/modernizr.custom-3.6.0.js +0 -3
- data/docs/js/perfect-scrollbar.jquery.min.js +0 -2
- data/docs/js/perfect-scrollbar.min.js +0 -2
- data/docs/js/search.js +0 -93
- data/docs/mermaid/mermaid.css +0 -277
- data/docs/mermaid/mermaid.dark.css +0 -278
- data/docs/mermaid/mermaid.forest.css +0 -356
- data/docs/mermaid/mermaid.js +0 -8
- data/docs/quick_reference/index.html +0 -1246
- data/docs/quick_reference/index.xml +0 -12
- data/docs/sitemap.xml +0 -81
- data/docs/tags/index.html +0 -1146
- data/docs/tags/index.xml +0 -11
- data/docs/tutorial/10-getting_started/index.html +0 -1174
- data/docs/tutorial/20-project_layout/index.html +0 -1299
- data/docs/tutorial/30-your_first_command/index.html +0 -1263
- data/docs/tutorial/40-options_parameters_and_arguments/index.html +0 -1384
- data/docs/tutorial/50-publishing/index.html +0 -1187
- data/docs/tutorial/index.html +0 -1140
- data/docs/tutorial/index.xml +0 -47
- data/docs/webfonts/fa-brands-400.eot +0 -0
- data/docs/webfonts/fa-brands-400.svg +0 -1
- data/docs/webfonts/fa-brands-400.ttf +0 -0
- data/docs/webfonts/fa-brands-400.woff +0 -0
- data/docs/webfonts/fa-brands-400.woff2 +0 -0
- data/docs/webfonts/fa-regular-400.eot +0 -0
- data/docs/webfonts/fa-regular-400.svg +0 -1
- data/docs/webfonts/fa-regular-400.ttf +0 -0
- data/docs/webfonts/fa-regular-400.woff +0 -0
- data/docs/webfonts/fa-regular-400.woff2 +0 -0
- data/docs/webfonts/fa-solid-900.eot +0 -0
- data/docs/webfonts/fa-solid-900.svg +0 -1
- data/docs/webfonts/fa-solid-900.ttf +0 -0
- data/docs/webfonts/fa-solid-900.woff +0 -0
- data/docs/webfonts/fa-solid-900.woff2 +0 -0
- data/docs/whoami/index.html +0 -1155
- data/docs/whoami/index.xml +0 -12
- data/docs-src/archetypes/default.md +0 -6
- data/docs-src/config.toml +0 -37
- data/docs-src/content/_index.md +0 -40
- data/docs-src/content/advanced/_index.md +0 -11
- data/docs-src/content/advanced/automatic_updates.md +0 -46
- data/docs-src/content/advanced/command_types.md +0 -148
- data/docs-src/content/advanced/distributed_state_locking.md +0 -37
- data/docs-src/content/advanced/hooks.md +0 -69
- data/docs-src/content/advanced/interactive_commands.md +0 -41
- data/docs-src/content/advanced/logging.md +0 -39
- data/docs-src/content/advanced/remote_execution.md +0 -60
- data/docs-src/content/advanced/state_storage.md +0 -120
- data/docs-src/content/advanced/user_config_files.md +0 -51
- data/docs-src/content/development/_index.md +0 -11
- data/docs-src/content/development/changelog.md +0 -199
- data/docs-src/content/development/code_of_conduct.md +0 -81
- data/docs-src/content/development/contributing.md +0 -88
- data/docs-src/content/development/license.md +0 -17
- data/docs-src/content/quick_reference/_index.md +0 -180
- data/docs-src/content/tutorial/10-getting_started.md +0 -47
- data/docs-src/content/tutorial/20-project_layout.md +0 -123
- data/docs-src/content/tutorial/30-your_first_command.md +0 -132
- data/docs-src/content/tutorial/40-options_parameters_and_arguments.md +0 -282
- data/docs-src/content/tutorial/50-publishing.md +0 -53
- data/docs-src/content/tutorial/_index.md +0 -11
- data/docs-src/content/whoami/_index.md +0 -34
- data/docs-src/layouts/partials/logo.html +0 -3
- data/docs-src/makesite.sh +0 -40
- data/docs-src/mkdocs-archived.tar.gz +0 -0
- data/docs-src/runsite.sh +0 -8
- data/docs-src/themes/hugo-theme-learn/.editorconfig +0 -16
- data/docs-src/themes/hugo-theme-learn/.gitignore +0 -3
- data/docs-src/themes/hugo-theme-learn/.grenrc.yml +0 -25
- data/docs-src/themes/hugo-theme-learn/CHANGELOG.md +0 -226
- data/docs-src/themes/hugo-theme-learn/LICENSE.md +0 -22
- data/docs-src/themes/hugo-theme-learn/README.md +0 -97
- data/docs-src/themes/hugo-theme-learn/archetypes/chapter.md +0 -13
- data/docs-src/themes/hugo-theme-learn/archetypes/default.md +0 -7
- data/docs-src/themes/hugo-theme-learn/exampleSite/LICENSE.md +0 -20
- data/docs-src/themes/hugo-theme-learn/exampleSite/config.toml +0 -102
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/_index.en.md +0 -41
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/_index.fr.md +0 -43
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/_index.en.md +0 -12
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/_index.fr.md +0 -12
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/_index.zh.md +0 -12
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/configuration/_index.en.md +0 -60
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/configuration/_index.fr.md +0 -56
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/installation/_index.en.md +0 -102
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/installation/_index.fr.md +0 -100
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/installation/images/chapter.png +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/requirements/_index.en.md +0 -11
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/requirements/_index.fr.md +0 -11
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/requirements/images/magic.gif +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/_index.en.md +0 -194
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/_index.fr.md +0 -194
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/blue-variant.png +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/green-variant.png +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/red-variant.png +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/_index.en.md +0 -12
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/_index.fr.md +0 -12
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/archetypes.en.md +0 -57
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/archetypes.fr.md +0 -57
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/i18n/_index.en.md +0 -78
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/i18n/_index.fr.md +0 -78
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/i18n/images/i18n-menu.gif +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/icons.en.md +0 -41
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/markdown.en.md +0 -692
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/markdown.fr.md +0 -666
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/menushortcuts.en.md +0 -109
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/menushortcuts.fr.md +0 -109
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/pages/_index.en.md +0 -166
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/pages/_index.fr.md +0 -146
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/frontmatter-icon.png +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/pages-chapter.png +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/pages-default.png +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/syntaxhighlight.en.md +0 -89
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/tags.en.md +0 -39
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/tags.fr.md +0 -40
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/credits.en.md +0 -28
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/credits.fr.md +0 -28
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/_index.en.md +0 -16
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/_index.fr.md +0 -16
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/BachGavotteShort.mp3 +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/Carroll_AliceAuPaysDesMerveilles.pdf +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/adivorciarsetoca00cape.pdf +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/hugo.png +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/movieselectricsheep-flock-244-32500-2.mp4 +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.md +0 -85
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/BachGavotteShort.mp3 +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/Carroll_AliceAuPaysDesMerveilles.pdf +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/adivorciarsetoca00cape.pdf +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/hugo.png +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/movieselectricsheep-flock-244-32500-2.mp4 +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.md +0 -85
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/button.en.md +0 -16
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/button.fr.md +0 -16
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/_index.en.md +0 -45
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/_index.fr.md +0 -45
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/_index.en.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/_index.fr.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.en.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.fr.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.en.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.fr.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.en.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.fr.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.en.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.fr.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/_index.en.md +0 -11
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/_index.fr.md +0 -11
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/test3.en.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/test3.fr.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-3/_index.en.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-3/_index.fr.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-4/_index.en.md +0 -7
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-4/_index.fr.md +0 -7
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/test.en.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/test.fr.md +0 -6
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/expand.en.md +0 -45
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/expand.fr.md +0 -45
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/mermaid.en.md +0 -283
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/mermaid.fr.md +0 -283
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/notice.en.md +0 -62
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/notice.fr.md +0 -62
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/siteparam.en.md +0 -23
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/siteparam.fr.md +0 -23
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/showcase.en.md +0 -13
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/showcase.fr.md +0 -14
- data/docs-src/themes/hugo-theme-learn/exampleSite/layouts/partials/custom-footer.html +0 -10
- data/docs-src/themes/hugo-theme-learn/exampleSite/layouts/partials/logo.html +0 -39
- data/docs-src/themes/hugo-theme-learn/exampleSite/layouts/partials/menu-footer.html +0 -14
- data/docs-src/themes/hugo-theme-learn/exampleSite/layouts/shortcodes/ghcontributors.html +0 -31
- data/docs-src/themes/hugo-theme-learn/exampleSite/static/css/theme-mine.css +0 -104
- data/docs-src/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.eot +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.svg +0 -1
- data/docs-src/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.ttf +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.woff +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.woff2 +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/static/images/showcase/inteliver_docs.png +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/static/images/showcase/tat.png +0 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/static/images/showcase/tshark_dev.png +0 -0
- data/docs-src/themes/hugo-theme-learn/i18n/ar.toml +0 -26
- data/docs-src/themes/hugo-theme-learn/i18n/de.toml +0 -26
- data/docs-src/themes/hugo-theme-learn/i18n/en.toml +0 -26
- data/docs-src/themes/hugo-theme-learn/i18n/es.toml +0 -26
- data/docs-src/themes/hugo-theme-learn/i18n/fr.toml +0 -26
- data/docs-src/themes/hugo-theme-learn/i18n/hi.toml +0 -26
- data/docs-src/themes/hugo-theme-learn/i18n/id.toml +0 -26
- data/docs-src/themes/hugo-theme-learn/i18n/ja.toml +0 -26
- data/docs-src/themes/hugo-theme-learn/i18n/nl.toml +0 -26
- data/docs-src/themes/hugo-theme-learn/i18n/pt.toml +0 -26
- data/docs-src/themes/hugo-theme-learn/i18n/ru.toml +0 -26
- data/docs-src/themes/hugo-theme-learn/i18n/tr.toml +0 -26
- data/docs-src/themes/hugo-theme-learn/i18n/zh-cn.toml +0 -26
- data/docs-src/themes/hugo-theme-learn/images/screenshot.png +0 -0
- data/docs-src/themes/hugo-theme-learn/images/tn.png +0 -0
- data/docs-src/themes/hugo-theme-learn/layouts/404.html +0 -56
- data/docs-src/themes/hugo-theme-learn/layouts/_default/list.html +0 -22
- data/docs-src/themes/hugo-theme-learn/layouts/_default/single.html +0 -12
- data/docs-src/themes/hugo-theme-learn/layouts/index.html +0 -31
- data/docs-src/themes/hugo-theme-learn/layouts/index.json +0 -12
- data/docs-src/themes/hugo-theme-learn/layouts/partials/custom-comments.html +0 -3
- data/docs-src/themes/hugo-theme-learn/layouts/partials/custom-footer.html +0 -5
- data/docs-src/themes/hugo-theme-learn/layouts/partials/custom-header.html +0 -5
- data/docs-src/themes/hugo-theme-learn/layouts/partials/favicon.html +0 -1
- data/docs-src/themes/hugo-theme-learn/layouts/partials/footer.html +0 -77
- data/docs-src/themes/hugo-theme-learn/layouts/partials/header.html +0 -111
- data/docs-src/themes/hugo-theme-learn/layouts/partials/logo.html +0 -19
- data/docs-src/themes/hugo-theme-learn/layouts/partials/menu-footer.html +0 -1
- data/docs-src/themes/hugo-theme-learn/layouts/partials/menu.html +0 -151
- data/docs-src/themes/hugo-theme-learn/layouts/partials/meta.html +0 -2
- data/docs-src/themes/hugo-theme-learn/layouts/partials/search.html +0 -16
- data/docs-src/themes/hugo-theme-learn/layouts/partials/tags.html +0 -7
- data/docs-src/themes/hugo-theme-learn/layouts/partials/toc.html +0 -5
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/attachments.html +0 -36
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/button.html +0 -14
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/children.html +0 -101
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/expand.html +0 -17
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/mermaid.html +0 -2
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/notice.html +0 -2
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/ref.html +0 -14
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/relref.html +0 -14
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/siteparam.html +0 -7
- data/docs-src/themes/hugo-theme-learn/netlify.toml +0 -23
- data/docs-src/themes/hugo-theme-learn/static/css/atom-one-dark-reasonable.css +0 -77
- data/docs-src/themes/hugo-theme-learn/static/css/auto-complete.css +0 -47
- data/docs-src/themes/hugo-theme-learn/static/css/featherlight.min.css +0 -8
- data/docs-src/themes/hugo-theme-learn/static/css/fontawesome-all.min.css +0 -1
- data/docs-src/themes/hugo-theme-learn/static/css/hugo-theme.css +0 -254
- data/docs-src/themes/hugo-theme-learn/static/css/hybrid.css +0 -102
- data/docs-src/themes/hugo-theme-learn/static/css/nucleus.css +0 -615
- data/docs-src/themes/hugo-theme-learn/static/css/perfect-scrollbar.min.css +0 -2
- data/docs-src/themes/hugo-theme-learn/static/css/tags.css +0 -49
- data/docs-src/themes/hugo-theme-learn/static/css/theme-blue.css +0 -111
- data/docs-src/themes/hugo-theme-learn/static/css/theme-green.css +0 -111
- data/docs-src/themes/hugo-theme-learn/static/css/theme-red.css +0 -111
- data/docs-src/themes/hugo-theme-learn/static/css/theme.css +0 -1136
- data/docs-src/themes/hugo-theme-learn/static/fonts/Inconsolata.eot +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Inconsolata.svg +0 -1
- data/docs-src/themes/hugo-theme-learn/static/fonts/Inconsolata.ttf +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Inconsolata.woff +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.eot +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.svg +0 -1
- data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.ttf +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.woff +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.woff2 +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.eot +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.svg +0 -1
- data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.ttf +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.woff +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.woff2 +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_200.eot +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_200.svg +0 -1
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_200.ttf +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_200.woff +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_200.woff2 +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_300.eot +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_300.svg +0 -1
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_300.ttf +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_300.woff +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_300.woff2 +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_500.eot +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_500.svg +0 -1
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_500.ttf +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_500.woff +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_500.woff2 +0 -0
- data/docs-src/themes/hugo-theme-learn/static/images/clippy.svg +0 -1
- data/docs-src/themes/hugo-theme-learn/static/images/favicon.png +0 -0
- data/docs-src/themes/hugo-theme-learn/static/images/gopher-404.jpg +0 -0
- data/docs-src/themes/hugo-theme-learn/static/js/auto-complete.js +0 -3
- data/docs-src/themes/hugo-theme-learn/static/js/clipboard.min.js +0 -7
- data/docs-src/themes/hugo-theme-learn/static/js/featherlight.min.js +0 -9
- data/docs-src/themes/hugo-theme-learn/static/js/highlight.pack.js +0 -6
- data/docs-src/themes/hugo-theme-learn/static/js/hugo-learn.js +0 -94
- data/docs-src/themes/hugo-theme-learn/static/js/jquery-3.3.1.min.js +0 -2
- data/docs-src/themes/hugo-theme-learn/static/js/jquery.sticky.js +0 -288
- data/docs-src/themes/hugo-theme-learn/static/js/learn.js +0 -459
- data/docs-src/themes/hugo-theme-learn/static/js/lunr.min.js +0 -6
- data/docs-src/themes/hugo-theme-learn/static/js/modernizr.custom-3.6.0.js +0 -3
- data/docs-src/themes/hugo-theme-learn/static/js/perfect-scrollbar.jquery.min.js +0 -2
- data/docs-src/themes/hugo-theme-learn/static/js/perfect-scrollbar.min.js +0 -2
- data/docs-src/themes/hugo-theme-learn/static/js/search.js +0 -93
- data/docs-src/themes/hugo-theme-learn/static/mermaid/mermaid.css +0 -277
- data/docs-src/themes/hugo-theme-learn/static/mermaid/mermaid.dark.css +0 -278
- data/docs-src/themes/hugo-theme-learn/static/mermaid/mermaid.forest.css +0 -356
- data/docs-src/themes/hugo-theme-learn/static/mermaid/mermaid.js +0 -8
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-brands-400.eot +0 -0
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-brands-400.svg +0 -1
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-brands-400.ttf +0 -0
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-brands-400.woff +0 -0
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-brands-400.woff2 +0 -0
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-regular-400.eot +0 -0
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-regular-400.svg +0 -1
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-regular-400.ttf +0 -0
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-regular-400.woff +0 -0
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-regular-400.woff2 +0 -0
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-solid-900.eot +0 -0
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-solid-900.svg +0 -1
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-solid-900.ttf +0 -0
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-solid-900.woff +0 -0
- data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-solid-900.woff2 +0 -0
- data/docs-src/themes/hugo-theme-learn/theme.toml +0 -21
- data/docs-src/themes/hugo-theme-learn/wercker.yml +0 -16
- data/lib/rbcli/configuration/configurate.rb +0 -85
- data/lib/rbcli/configuration/configurate_blocks/hooks.rb +0 -52
- data/lib/rbcli/configuration/configurate_blocks/me.rb +0 -122
- data/lib/rbcli/configuration/configurate_blocks/storage.rb +0 -50
- data/lib/rbcli/engine/command.rb +0 -251
- data/lib/rbcli/engine/load_project.rb +0 -45
- data/lib/rbcli/engine/parser.rb +0 -116
- data/lib/rbcli/features/autoupdate/common/autoupdate.rb +0 -50
- data/lib/rbcli/features/autoupdate/gem_updater.rb +0 -62
- data/lib/rbcli/features/autoupdate/github_updater.rb +0 -76
- data/lib/rbcli/features/logging.rb +0 -98
- data/lib/rbcli/features/remote_exec.rb +0 -187
- data/lib/rbcli/features/scriptwrapper.rb +0 -75
- data/lib/rbcli/features/userconfig.rb +0 -163
- data/lib/rbcli/state_storage/common/state_storage.rb +0 -138
- data/lib/rbcli/state_storage/localstate.rb +0 -77
- data/lib/rbcli/state_storage/placeholders.rb +0 -29
- data/lib/rbcli/state_storage/remote_state_connectors/dynamodb.rb +0 -272
- data/lib/rbcli/state_storage/remotestate_dynamodb.rb +0 -115
- data/lib/rbcli/util/msg.rb +0 -55
- data/lib/rbcli/util/string_colorize.rb +0 -45
- data/lib/rbcli-tool/generators.rb +0 -105
- data/lib/rbcli-tool/mdless_fix.rb +0 -406
- data/lib/rbcli-tool/project.rb +0 -120
- data/lib/rbcli-tool/util.rb +0 -70
- data/lib/rbcli-tool.rb +0 -37
- data/rbcli.gemspec +0 -73
- data/skeletons/micro/executable +0 -132
- data/skeletons/mini/executable +0 -247
- data/skeletons/project/.gitignore +0 -11
- data/skeletons/project/.rakeTasks +0 -7
- data/skeletons/project/.rbcli +0 -0
- data/skeletons/project/.rspec +0 -3
- data/skeletons/project/CODE_OF_CONDUCT.md +0 -74
- data/skeletons/project/Gemfile +0 -6
- data/skeletons/project/README.md +0 -46
- data/skeletons/project/Rakefile +0 -6
- data/skeletons/project/application/commands/command.erb +0 -28
- data/skeletons/project/application/commands/script.erb +0 -30
- data/skeletons/project/application/commands/scripts/script.sh +0 -60
- data/skeletons/project/application/options.rb +0 -34
- data/skeletons/project/config/autoupdate.rb +0 -35
- data/skeletons/project/config/general.rb +0 -17
- data/skeletons/project/config/logging.rb +0 -19
- data/skeletons/project/config/storage.rb +0 -35
- data/skeletons/project/config/userspace.rb +0 -33
- data/skeletons/project/config/version.rb +0 -3
- data/skeletons/project/exe/executable +0 -53
- data/skeletons/project/hooks/default_action.rb +0 -16
- data/skeletons/project/hooks/first_run.rb +0 -16
- data/skeletons/project/hooks/post_execution.rb +0 -14
- data/skeletons/project/hooks/pre_execution.rb +0 -14
- data/skeletons/project/lib/lib.erb +0 -9
- data/skeletons/project/spec/spec_helper.rb +0 -14
- data/skeletons/project/spec/untitled_spec.rb +0 -9
- data/skeletons/project/untitled.gemspec +0 -40
- data/skeletons/project/userconf/user_defaults.yml +0 -6
- /data/{docs-src/.hugo_build.lock → lib/rbcli/plugins/.keep} +0 -0
data/exe/rbcli
CHANGED
@@ -1,261 +1,200 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
##################################################################################
|
3
|
-
#
|
4
|
-
# Copyright (C)
|
5
|
-
# #
|
6
|
-
# This program is free software: you can redistribute it and/or modify #
|
7
|
-
# it under the terms of the GNU General Public License as published by #
|
8
|
-
# the Free Software Foundation, either version 3 of the License, or #
|
9
|
-
# (at your option) any later version. #
|
10
|
-
# #
|
11
|
-
# This program is distributed in the hope that it will be useful, #
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
14
|
-
# GNU General Public License for more details. #
|
15
|
-
# #
|
16
|
-
# You should have received a copy of the GNU General Public License #
|
17
|
-
# along with this program. If not, see <https://www.gnu.org/licenses/>. #
|
18
|
-
# #
|
19
|
-
# For questions regarding licensing, please contact andrew@blacknex.us #
|
3
|
+
# Rbcli -- A framework for developing command line applications in Ruby #
|
4
|
+
# Copyright (C) 2024 Andrew Khoury <akhoury@live.com> #
|
20
5
|
##################################################################################
|
21
|
-
|
22
|
-
require
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
6
|
+
BASEDIR = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
7
|
+
require File.join(BASEDIR, 'lib', 'rbcli.rb')
|
8
|
+
require File.join(RBCLI_TOOLDIR, 'helpers.rb')
|
9
|
+
|
10
|
+
Rbcli::Configurate.cli do
|
11
|
+
appname 'Rbcli'
|
12
|
+
author 'Andrew Khoury'
|
13
|
+
email 'akhoury@live.com'
|
14
|
+
version Rbcli::VERSION
|
15
|
+
copyright_year 2024
|
16
|
+
license 'MIT'
|
17
|
+
helptext "Helptext!"
|
18
|
+
opt :version, "Print version and exit", :short => :none
|
29
19
|
end
|
30
20
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
action do
|
37
|
-
readme = "#{File.dirname(__FILE__)}/../README.md"
|
38
|
-
begin
|
39
|
-
CLIMarkdown::Converter.new([readme])
|
40
|
-
rescue Errno::EPIPE
|
41
|
-
# Empty
|
42
|
-
end
|
43
|
-
end
|
21
|
+
Rbcli::Configurate.logger do
|
22
|
+
logger target: :stdout,
|
23
|
+
level: ENV['RBCLI_DEVELOPMENT'] == 'true' ? :debug : :info,
|
24
|
+
format: ENV['RBCLI_DEVELOPMENT'] == 'true' ? :simple : :display
|
44
25
|
end
|
45
26
|
|
46
|
-
|
47
|
-
|
48
|
-
usage nil
|
49
|
-
|
50
|
-
parameter :full, 'Display Full License Text', default: false
|
51
|
-
|
52
|
-
action do |params|
|
53
|
-
puts File.read("#{File.dirname(__FILE__)}/../LICENSE.txt") if params[:full]
|
54
|
-
puts <<-EOF
|
55
|
-
RBCli Copyright (C) 2018 Andrew Khoury
|
56
|
-
This program comes with ABSOLUTELY NO WARRANTY.
|
57
|
-
This is free software, and you are welcome to redistribute it
|
58
|
-
under certain conditions.
|
59
|
-
If you wish to release this library as part of commercial software,
|
60
|
-
please contact andrew@blacknex.us.
|
61
|
-
EOF
|
62
|
-
puts "Type `rbcli license --full' to show the license text." unless params[:full]
|
63
|
-
end
|
27
|
+
Rbcli::Configurate.updatechecker do
|
28
|
+
gem 'rbcli', force_update: false, message: "Please run `gem update rbcli` to upgrade to the latest version."
|
64
29
|
end
|
65
30
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
This will generate a new project structure under the current directory. Use -t to specify the type:
|
70
|
-
|
71
|
-
|
72
|
-
Standard: A complete RBCli project structure. Recommended for most applications, it provides
|
73
|
-
a framework for organizing code and creating a gem to be installed/distributed.
|
74
|
-
|
75
|
-
Mini: A single-file RBCli project. All features are supported, but project structure is left to the developer.
|
76
|
-
Recommended for smaller applications, or for integrating RBCli into an existing application.
|
77
|
-
|
78
|
-
Micro: A single-file, minimal RBCli project. Similar to a mini project, but only the minimal required code is
|
79
|
-
generated. Recommended for rapid prototyping of scripts, for advanced users only.
|
80
|
-
EOF
|
81
|
-
|
82
|
-
parameter :name, 'Name of project to generate', type: :string, default: File.basename(Dir.pwd), required: true, prompt: 'Enter a name'
|
83
|
-
parameter :type, 'Specify project type', type: :string, permitted: %w(standard mini micro), default: 'standard'
|
84
|
-
parameter :description, 'A description of the project', type: :string, default: 'TODO: Description goes here'
|
85
|
-
|
86
|
-
action do |params, args, global_opts, config|
|
87
|
-
dest = Dir.pwd
|
88
|
-
|
89
|
-
# Prepare template vars
|
90
|
-
template_vars = {
|
91
|
-
cmdname: params[:name],
|
92
|
-
modulename: params[:name].split('-').each(&:capitalize!).join,
|
93
|
-
description: params[:description],
|
94
|
-
rbcli_version: Rbcli::VERSION
|
95
|
-
}
|
96
|
-
|
97
|
-
proj = RBCliTool::Project.new(dest, template_vars)
|
98
|
-
|
99
|
-
# if proj.exist?
|
100
|
-
# RBCliTool.continue_confirmation "The project or file #{params[:name]} already exists; contents will be overwritten."
|
101
|
-
# FileUtils.rm_rf dest
|
102
|
-
# end
|
103
|
-
|
104
|
-
case params[:type]
|
105
|
-
when 'micro' # Micro: Single File, simplified
|
106
|
-
success = proj.create_micro
|
107
|
-
when 'mini' # Mini: Single File
|
108
|
-
success = proj.create_mini
|
109
|
-
else # Standard; full project structure
|
110
|
-
success = proj.create
|
111
|
-
end # END case params[:type]
|
112
|
-
|
113
|
-
if success
|
114
|
-
puts "\nInitialization Complete!\n"
|
115
|
-
else
|
116
|
-
puts "\nAn RBCli Project already exists in the current or specified directory tree. Please delete the project or run this command from a different directory.\n"
|
117
|
-
end
|
118
|
-
end
|
31
|
+
Rbcli::Configurate.envvars do
|
32
|
+
prefix 'RBCLI'
|
33
|
+
envvar 'RBCLI_DEVELOPMENT', false
|
119
34
|
end
|
120
35
|
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
36
|
+
Rbcli.command "portable" do
|
37
|
+
description 'Creates a portable Rbcli executable'
|
38
|
+
usage "(--(d)ocs|--use-(b)undler|--(f)orce) <application_name>"
|
39
|
+
helptext <<~HELPTEXT
|
40
|
+
This will initialize a portable Rbcli project in the current directory.
|
41
|
+
|
42
|
+
A single executable file will be created with all of the Rbcli configuration
|
43
|
+
in it. This setup is ideal for creating an executable that can be easily transferred to
|
44
|
+
different systems, or for dropping into a pre-existing project.
|
45
|
+
|
46
|
+
If you'd prefer a complete project structure, run `rbcli gem --help` for more information.
|
47
|
+
HELPTEXT
|
48
|
+
|
49
|
+
parameter :annotate, "Add annotations and examples for a more guided build"
|
50
|
+
parameter :use_bundler, "Use bundler inline for dependencies", short: :b
|
51
|
+
parameter :force, "Overwrite files without prompting"
|
52
|
+
|
53
|
+
action do |opts, params, args, config, env|
|
54
|
+
if args.first.nil?
|
55
|
+
Rbcli.log.error "You must specify a name for the project", 'TOOL'
|
56
|
+
Rbcli.log.error "Usage: #{self.usage}", 'TOOL'
|
57
|
+
Rbcli::exit 1
|
58
|
+
end
|
59
|
+
vars = {
|
60
|
+
appname: args.first,
|
61
|
+
use_bundler: params[:use_bundler],
|
62
|
+
development: env[:development],
|
63
|
+
showdocs: params[:annotate]
|
64
|
+
}
|
65
|
+
Rbcli.log.debug "Creating portable executable", 'TOOL'
|
66
|
+
Rbcli::ToolHelpers.cp_file File.join(RBCLI_TOOLDIR, 'skeletons', 'portable.rb.erb'),
|
67
|
+
File.join(Dir.getwd, "#{vars[:appname].downcase}"),
|
68
|
+
template_vars: vars, set_executable: true, force: params[:force]
|
69
|
+
Rbcli.log.info "Done.", 'TOOL'
|
70
|
+
end
|
149
71
|
end
|
150
72
|
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
73
|
+
Rbcli.command "gem" do
|
74
|
+
description 'Creates an full Rbcli-based gem project'
|
75
|
+
usage "(--(f)orce) <application_name>"
|
76
|
+
helptext <<~HELPTEXT
|
77
|
+
This will initialize an complete Rbcli project in the current directory.
|
78
|
+
|
79
|
+
First a basic Gem structure is created with bundler, and then the
|
80
|
+
Rbcli-specific modifications are layered on top. This is ideal
|
81
|
+
for larger applications, or if you already have CI/CD pipelines
|
82
|
+
that work with Gems and want to reuse your code
|
83
|
+
|
84
|
+
If you'd prefer a single-file executable script, run `rbcli portable --help` for more information.
|
85
|
+
HELPTEXT
|
86
|
+
|
87
|
+
parameter :force, "Overwrite files without prompting"
|
88
|
+
|
89
|
+
action do |opts, params, args, config, env|
|
90
|
+
if args.first.nil?
|
91
|
+
Rbcli.log.error "You must specify a name for the project", 'TOOL'
|
92
|
+
Rbcli.log.error "Usage: #{self.usage}", 'TOOL'
|
93
|
+
Rbcli::exit 1
|
94
|
+
end
|
95
|
+
vars = {
|
96
|
+
appname: args.first,
|
97
|
+
use_bundler: params[:use_bundler],
|
98
|
+
development: env[:development],
|
99
|
+
showdocs: params[:docs]
|
100
|
+
}
|
101
|
+
project_dir = File.join(Dir.getwd, vars[:appname])
|
102
|
+
config_dir = File.join(project_dir, 'lib', 'config')
|
103
|
+
command_dir = File.join(project_dir, 'lib', 'commands')
|
104
|
+
scripts_dir = File.join(command_dir, 'scripts')
|
105
|
+
if File.exist?(project_dir) && params[:force]
|
106
|
+
FileUtils.rm_rf(project_dir)
|
107
|
+
elsif File.exist?(project_dir) && !params[:force]
|
108
|
+
Rbcli.log.info "The project #{vars[:appname]} already exists. Overwrite? (y/n): ", 'TOOL'
|
109
|
+
answer = gets.chomp
|
110
|
+
answer = { 'y' => true, 'n' => false }[(answer[0] || '').downcase]
|
111
|
+
if answer
|
112
|
+
Rbcli.log.debug "Deleting #{File.basename(project_dir)}", 'TOOL'
|
113
|
+
FileUtils.rm_rf(project_dir)
|
114
|
+
else
|
115
|
+
return
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
# Full options available:
|
120
|
+
# `bundle gem --exe --coc --mit --test=rspec/minitest/test-unit --ci=github/gitlab/circle --linter=rubocop/standard <name>`
|
121
|
+
Rbcli.log.info "Running bundler gem", 'TOOL'
|
122
|
+
`bundle gem --exe --coc #{vars[:appname]}`
|
123
|
+
Rbcli.log.debug "Creating Rbcli project identifier", 'TOOL'
|
124
|
+
FileUtils.touch(File.join(project_dir), '.rbcli')
|
125
|
+
Rbcli.log.debug "Creating additional directories", 'TOOL'
|
126
|
+
[config_dir, command_dir, scripts_dir].each { |dir| FileUtils.mkdir_p(dir) }
|
127
|
+
FileUtils.touch(File.join(scripts_dir, '.keep'))
|
128
|
+
Rbcli.log.debug "Creating executable", 'TOOL'
|
129
|
+
Rbcli::ToolHelpers.cp_file File.join(RBCLI_TOOLDIR, 'skeletons', 'gem.rb.erb'),
|
130
|
+
File.join(project_dir, 'exe', "#{vars[:appname].downcase}"),
|
131
|
+
template_vars: vars, set_executable: true, force: true
|
132
|
+
Rbcli.log.debug "Creating configs", 'TOOL'
|
133
|
+
%w(parser logger config envvars hooks updatechecker).each { |component|
|
134
|
+
Rbcli::ToolHelpers.cp_file File.join(RBCLI_LIBDIR, 'components', component, 'template.rb.erb'),
|
135
|
+
File.join(config_dir, "#{component}.rb"),
|
136
|
+
template_vars: vars, set_executable: false, force: params[:force] }
|
137
|
+
Rbcli.log.debug "Creating commands", 'TOOL'
|
138
|
+
%w(command script).each { |cmdtype|
|
139
|
+
Rbcli::ToolHelpers.cp_file File.join(RBCLI_LIBDIR, 'components', 'commands', "#{cmdtype}.rb.erb"),
|
140
|
+
File.join(command_dir, "#{cmdtype}.rb"),
|
141
|
+
template_vars: vars, set_executable: false, force: params[:force] }
|
142
|
+
Rbcli.log.info "Done."
|
143
|
+
end
|
182
144
|
end
|
183
145
|
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
146
|
+
Rbcli.command "command" do
|
147
|
+
description 'Generate a new command declaration in the current project'
|
148
|
+
usage "(--(s)cript|--(f)orce) <application_name>"
|
149
|
+
parameter :script, 'Generate a shell-script based command', default: false
|
150
|
+
parameter :force, 'Overwrite files without prompting', default: false
|
151
|
+
action do |opts, params, args, config, env|
|
152
|
+
if args.first.nil?
|
153
|
+
Rbcli.log.error "You must specify a name for the command", 'TOOL'
|
154
|
+
Rbcli.log.error "Usage: #{self.usage}", 'TOOL'
|
155
|
+
Rbcli::exit 1
|
156
|
+
end
|
157
|
+
|
158
|
+
unless (project_dir = find_root(Dir.pwd))
|
159
|
+
Rbcli.log.error "Not an Rbcli project directory. This command can only be run on projects created using `rbcli gem <project_name>`."
|
160
|
+
Rbcli.log.error "If you believe you are receiving this message in error, make sure the `.rbcli` file exists in the current directory."
|
161
|
+
return
|
162
|
+
end
|
163
|
+
|
164
|
+
command_dir = File.join(project_dir, 'lib', 'commands')
|
165
|
+
scripts_dir = File.join(command_dir, 'scripts')
|
166
|
+
FileUtils.mkdir_p(command_dir)
|
167
|
+
FileUtils.mkdir_p(scripts_dir) if params[:script]
|
168
|
+
Rbcli.log.debug "Creating commands", 'TOOL'
|
169
|
+
|
170
|
+
vars = {
|
171
|
+
command_name: args.first,
|
172
|
+
showdocs: true
|
173
|
+
}
|
174
|
+
|
175
|
+
cmdtype = params[:script] ? 'script' : 'command'
|
176
|
+
Rbcli::ToolHelpers.cp_file File.join(RBCLI_LIBDIR, 'components', 'commands', "#{cmdtype}.rb.erb"),
|
177
|
+
File.join(command_dir, "#{args.first}.rb"),
|
178
|
+
template_vars: vars, set_executable: false, force: params[:force]
|
179
|
+
end
|
180
|
+
|
181
|
+
def find_root path
|
182
|
+
# We look for the .rbcli file in the current tree and return the root path
|
183
|
+
searchpath = path
|
184
|
+
until searchpath.empty?
|
185
|
+
return searchpath if File.directory? searchpath and File.exist? "#{searchpath}/.rbcli"
|
186
|
+
spath = searchpath.split('/')
|
187
|
+
searchpath = (spath.length == 2) ? '/' : spath[0..-2].join('/')
|
188
|
+
end
|
189
|
+
false
|
190
|
+
end
|
215
191
|
end
|
216
192
|
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
Default: The default hook runs whenever the user does not specify a command. If the hook is not present, the default
|
223
|
-
behavior is to show the help text (same as -h).
|
224
|
-
|
225
|
-
Pre: The pre-execution hook, which runs code prior to the execution of any command. This allows for actions such
|
226
|
-
as authentiation into remote systems.
|
227
|
-
|
228
|
-
Post: The post-execution hook, which runs code after the execution of any command.
|
229
|
-
|
230
|
-
First-run: The first-run hook will run only on the first time the user runs the application. This is useful for
|
231
|
-
initial setup or for welcome messages to be shown. Note that if you enable the first-run hook, you must
|
232
|
-
also enable local_state (see config/storage.rb).
|
233
|
-
|
234
|
-
Please run this command from within the project's directory structure.
|
235
|
-
EOF
|
236
|
-
|
237
|
-
parameter :default, 'Generate the default (no-command-entered) hook', type: :boolean, default: false
|
238
|
-
parameter :pre, 'Generate the pre-execution hook', type: :boolean, default: false
|
239
|
-
parameter :post, 'Generate the post-execution hook', type: :boolean, default: false
|
240
|
-
parameter :firstrun, 'Generate the first-run hook', type: :boolean, default: false
|
241
|
-
|
242
|
-
action do |params, args, global_opts, config|
|
243
|
-
# First we check that we are working within a project folder
|
244
|
-
project_root = RBCliTool::Project.find_root(Dir.pwd)
|
245
|
-
RBCliTool.exit_with_error("Can't find the project root in the current path. Please `cd` to your project's directory before running this command, and ensure that the `.rbcli` file is present in its root path.") unless project_root
|
246
|
-
|
247
|
-
generated_something = false
|
248
|
-
|
249
|
-
[:default, :pre, :post, :firstrun].each do |pname|
|
250
|
-
next unless params[pname]
|
251
|
-
generator = RBCliTool::Generator.new(:hook, project_root, pname)
|
252
|
-
generator.run
|
253
|
-
generated_something = true
|
254
|
-
end
|
255
|
-
|
256
|
-
RBCliTool.exit_with_error("No hooks specified. Please run `rbcli hooks -h` for details on how to generate hooks.") unless generated_something
|
257
|
-
end
|
193
|
+
Rbcli.command "license" do
|
194
|
+
description 'Display license info'
|
195
|
+
action do |opts, params, args, config, env|
|
196
|
+
Rbcli.log.info "eJxdUk9v2jAUv/Mpnnpqpaibqp12M4kpVkMcOaaMY0gM8RRiZJshvv3ec+na\nTkKK/Px+f81KaChtZ6Zgfs5muTtdvT0M0fRw3z3A7gps6r25wMvgzv4KT9+f\nfsxmtfFHG4J1E9gAg/EGFw++nRCXwd4bA24P3dD6g8kgOminK5yMDwhwu9ja\nyU4HaKFDOdqMA9IEt4+X1htc7qENwXW2JR+9685HM8U2kt7ejibAfRwM3DU3\nxN1DEulNO4KdgO7er+BiIzqP4E2I3nbEkeFSN5578vB+PdqjvSkQPHUQiPQc\nMAH5zODoerunr0mxTufdaMOQQW+JeneOOAw0TG1mlOOb8xDMOBKDRd8p64e7\ntEMqJyo03ipKupfBHb8mwYr2Zz+hpEmY3mFlSfG36SJNaH3vxtFdKFrnpt5S\nooAPq/Gq3bk/JmVJ8WByEa2+WaAHOH286u0qDC1635lbYaiL9baf4niSDxEf\n3mL3J+eT3v8xH1F/yaGRC71hioNooFbyVRS8gDvW4Pkug43QS7nWgBuKVXoL\ncgGs2sKLqIoM+K9a8aYBqUCs6lJwnIkqL9eFqJ5hjrhK4h9ZrIRGUi2BBG9U\ngjdEtuIqX+KRzUUp9DaDhdAVcS6QlEHNlBb5umQK6rWqZcNRvkDaSlQLhSp8\nxSv9iKo4A/6KB2iWrCyTFFuje5X85bLeKvG81LCUZcFxOOfojM1L/iaFofKS\niVUGBVuxZ55QEllUWru52yx5GqEew1+uhawoRi4rrfCYYUql/0E3ouEZMCUa\nKmShJNJTnYiQiQRxFX9joarhy4vgCp3XDf/wUnBWIldD4M/Lj38BVjZX4w==".decompress, 'TOOL' ### LICENSE.txt
|
197
|
+
end
|
258
198
|
end
|
259
199
|
|
260
|
-
|
261
|
-
Rbcli.parse
|
200
|
+
Rbcli.go!
|
@@ -0,0 +1,120 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
##################################################################################
|
3
|
+
# Rbcli -- A framework for developing command line applications in Ruby #
|
4
|
+
# Copyright (C) 2024 Andrew Khoury <akhoury@live.com> #
|
5
|
+
##################################################################################
|
6
|
+
class Rbcli::Command
|
7
|
+
def initialize name
|
8
|
+
raise Rbcli::CommandError.new "Command name can only contain the characters [A-Za-z0-9_]+" unless /[A-Za-z0-9_]+/.match?(name)
|
9
|
+
@name = name.to_s.downcase
|
10
|
+
@default = false
|
11
|
+
@description = nil
|
12
|
+
@helptext = nil
|
13
|
+
@usage = nil
|
14
|
+
@action = nil
|
15
|
+
@script = nil
|
16
|
+
@params = []
|
17
|
+
end
|
18
|
+
|
19
|
+
attr_reader :name, :params
|
20
|
+
|
21
|
+
def description text = nil
|
22
|
+
return @description if text.nil?
|
23
|
+
@description = text
|
24
|
+
end
|
25
|
+
|
26
|
+
def helptext text = nil
|
27
|
+
return @helptext if text.nil?
|
28
|
+
@helptext = text
|
29
|
+
end
|
30
|
+
|
31
|
+
def usage text = nil
|
32
|
+
return @usage if text.nil?
|
33
|
+
@usage = text
|
34
|
+
end
|
35
|
+
|
36
|
+
def default
|
37
|
+
@default = true
|
38
|
+
end
|
39
|
+
|
40
|
+
def default?
|
41
|
+
@default
|
42
|
+
end
|
43
|
+
|
44
|
+
def parameter * args
|
45
|
+
args[2][:required] = false if !args[2].nil? && !args[2].empty? && args[2][:prompt].is_a?(String)
|
46
|
+
@params.push(args)
|
47
|
+
end
|
48
|
+
|
49
|
+
def action & block
|
50
|
+
@action = block
|
51
|
+
@script = nil
|
52
|
+
end
|
53
|
+
|
54
|
+
def inline_script inline: nil, vars: nil
|
55
|
+
require_relative 'scriptwrapper/scriptwrapper'
|
56
|
+
@action = nil
|
57
|
+
@script = Rbcli::ScriptWrapper.new inline: inline, path: nil, vars: vars
|
58
|
+
end
|
59
|
+
|
60
|
+
def external_script path: nil, vars: nil
|
61
|
+
unless File.exist?(path) && File.readable?(path) && File.executable?(path)
|
62
|
+
Rbcli.log.fatal "Command #{@name} expects a script to be located at: #{path}. Please make sure it exists and is both readable and executable by the current user."
|
63
|
+
Rbcli::exit 1
|
64
|
+
end
|
65
|
+
require_relative 'scriptwrapper/scriptwrapper'
|
66
|
+
@action = nil
|
67
|
+
@script = Rbcli::ScriptWrapper.new inline: nil, path: path, vars: vars
|
68
|
+
end
|
69
|
+
|
70
|
+
def has_function?
|
71
|
+
!(@action.nil? && @script.nil?)
|
72
|
+
end
|
73
|
+
|
74
|
+
def run! opts: nil, params: nil, args: nil, config: nil, env: nil
|
75
|
+
unless self.has_function?
|
76
|
+
raise Rbcli::CommandError.new "Command #{@name} does not have a function. An action, inline script, or external script must be defined."
|
77
|
+
end
|
78
|
+
# Rbcli.log.debug "Running command '#{@name}'", "CORE"
|
79
|
+
@action.call(opts, params, args, config, env) unless @action.nil?
|
80
|
+
@script.execute(opts, params, args, config, env) unless @script.nil?
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
module Rbcli
|
85
|
+
Rbcli::Warehouse.set(:commands, {})
|
86
|
+
|
87
|
+
def self.command name, & block
|
88
|
+
name = name.to_s.downcase
|
89
|
+
raise Rbcli::CommandError.new "The command #{name} cannot be defined twice." if Rbcli::Warehouse.get(:commands).key? name
|
90
|
+
command = Rbcli::Command.new(name)
|
91
|
+
command.instance_eval(&block)
|
92
|
+
unless command.has_function?
|
93
|
+
raise Rbcli::CommandError.new "Command #{command.name} does not have a function. An action, inline script, or external script must be defined."
|
94
|
+
end
|
95
|
+
if command.default? && Rbcli::Warehouse.get(:commands).any? { |cmd| cmd.default? }
|
96
|
+
raise Rbcli::CommandError.new "Only one command may be assigned as default"
|
97
|
+
end
|
98
|
+
Rbcli::Warehouse.get(:commands)[name] = command
|
99
|
+
|
100
|
+
## The first time a command is declared the engine gets primed to run commands
|
101
|
+
Rbcli::Engine.register_operation(Proc.new {
|
102
|
+
if Rbcli::Warehouse.get(:commands).empty?
|
103
|
+
raise Rbcli::CommandError.new "No commands defined. At least one command must be declared to use Rbcli."
|
104
|
+
end
|
105
|
+
cmd_to_run = Rbcli::Warehouse.get(:command, :parsedopts)
|
106
|
+
if cmd_to_run.nil?
|
107
|
+
Rbcli.log.debug "No command specified and no default set. Skipping execution.", "CORE"
|
108
|
+
break
|
109
|
+
end
|
110
|
+
Rbcli.log.debug "Running command '#{cmd_to_run.name}'", "CORE"
|
111
|
+
cmd_to_run.run!(
|
112
|
+
opts: Rbcli::Warehouse.get(:opts, :parsedopts),
|
113
|
+
params: Rbcli::Warehouse.get(:params, :parsedopts),
|
114
|
+
args: Rbcli::Warehouse.get(:args, :parsedopts),
|
115
|
+
config: Rbcli::Warehouse.get(:config, :parsedopts) || Rbcli::ConfigOfDeath.new,
|
116
|
+
env: Rbcli::Warehouse.get(:env, :parsedopts) || Rbcli::ConfigOfDeath.new
|
117
|
+
)
|
118
|
+
}, name: :run_command, priority: 100) if Rbcli::Warehouse.get(:commands).count == 1
|
119
|
+
end
|
120
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
Rbcli.command "<%= @command_name || 'example' %>" do
|
2
|
+
<%- if @showdocs -%>
|
3
|
+
##### Command Declaration (At least one is required) #####
|
4
|
+
# default (Optional) The default command is run when no other commands are called on the CLI
|
5
|
+
# Note that parameters are not available for default commands, as all CLI options
|
6
|
+
# are parsed against the global-level ones declared in the `Configurate.opts` block
|
7
|
+
# description (Optional) Short description that shows up in --help for the executable
|
8
|
+
# usage (Optional) Usage text that shows up in --help or when CLI format is bad
|
9
|
+
# helptext (Optional) Large help text that shows up in --help for the command
|
10
|
+
<%- end -%>
|
11
|
+
default
|
12
|
+
description 'Example command'
|
13
|
+
usage "[--param|--otherparam] name"
|
14
|
+
helptext <<~EOF
|
15
|
+
Big block of helptext
|
16
|
+
EOF
|
17
|
+
<%- if @showdocs -%>
|
18
|
+
# parameter (Optinoal) Parameters follow the same format as CLI Options, but are only available for this command
|
19
|
+
<%- end -%>
|
20
|
+
parameter :param, 'A Parameter', default: false
|
21
|
+
parameter :otherparam, 'Another Parameter', type: :string, default: "Default value"
|
22
|
+
<%- if @showdocs -%>
|
23
|
+
# action (Required, unless declaring a `script`) The action block is code that gets executed when the command is called
|
24
|
+
# Sending all output through the logger is recommended. For it to be displayed
|
25
|
+
# as regular text, set the logger to the :display format
|
26
|
+
<%- end -%>
|
27
|
+
action do |opts, params, args, config, env|
|
28
|
+
Rbcli.log.info "Welcome to your new application!"
|
29
|
+
<%- if @showdocs -%>
|
30
|
+
Rbcli.log.info "We like to send all of our output through the logger for easy formatting and deployment..."
|
31
|
+
puts "...but you don't have to"
|
32
|
+
Rbcli.log.info "Here's a quick demo of how to use the framework:\n"
|
33
|
+
|
34
|
+
Rbcli.log.info "Top-level CLI Options: " + opts.to_s
|
35
|
+
Rbcli.log.info "Parameters: " + params.to_s
|
36
|
+
Rbcli.log.info "Arguments on the CLI: " + args.to_s
|
37
|
+
Rbcli.log.info "The config: " + config.to_s
|
38
|
+
Rbcli.log.info "Environment variables: " + env.to_s
|
39
|
+
Rbcli.log.info ""
|
40
|
+
|
41
|
+
Rbcli.log.debug "Example Debug Message (change your log level to see this!)", "MYAPP"
|
42
|
+
Rbcli.log.info "Example Info Message", "MYAPP"
|
43
|
+
Rbcli.log.warn "Example Warning Message", "MYAPP"
|
44
|
+
Rbcli.log.error "Example Error Message", "MYAPP"
|
45
|
+
Rbcli.log.fatal "Example Fatal Message", "MYAPP"
|
46
|
+
Rbcli.log.unknown "Example Unknown Message", "MYAPP"
|
47
|
+
Rbcli.log.info ""
|
48
|
+
|
49
|
+
config[:davey] = 'Davey Jones'.compress
|
50
|
+
Rbcli.log.info "Compressed String: " + config[:davey]
|
51
|
+
Rbcli.log.info "Decompressed String: " + config[:davey].decompress
|
52
|
+
config.save!
|
53
|
+
<%- end -%>
|
54
|
+
end
|
55
|
+
end
|