rbcli 0.2.10 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rakeTasks +7 -0
- data/.rbenv-gemsets +1 -0
- data/CHANGELOG.md +46 -0
- data/Gemfile.lock +66 -48
- data/README.md +4 -4
- data/docs/404.html +54 -670
- data/docs/advanced/automatic_updates/index.html +998 -651
- data/docs/advanced/command_types/index.html +1022 -742
- data/docs/advanced/distributed_state_locking/index.html +998 -635
- data/docs/advanced/hooks/index.html +1011 -691
- data/docs/advanced/index.html +1140 -0
- data/docs/advanced/index.xml +113 -0
- data/docs/advanced/interactive_commands/index.html +1001 -653
- data/docs/advanced/logging/index.html +1006 -655
- data/docs/advanced/remote_execution/index.html +1010 -666
- data/docs/advanced/state_storage/index.html +1009 -721
- data/docs/advanced/user_config_files/index.html +981 -626
- data/docs/categories/index.html +1146 -0
- data/docs/categories/index.xml +10 -0
- data/docs/css/atom-one-dark-reasonable.css +77 -0
- data/docs/css/auto-complete.css +47 -0
- data/docs/css/featherlight.min.css +8 -0
- data/docs/css/fontawesome-all.min.css +1 -0
- data/docs/css/hugo-theme.css +254 -0
- data/docs/css/hybrid.css +102 -0
- data/docs/css/nucleus.css +615 -0
- data/docs/css/perfect-scrollbar.min.css +2 -0
- data/docs/css/tags.css +49 -0
- data/docs/css/theme-blue.css +111 -0
- data/docs/css/theme-green.css +111 -0
- data/docs/css/theme-red.css +111 -0
- data/docs/css/theme.css +1136 -0
- data/docs/development/changelog/index.html +1389 -0
- data/docs/development/code_of_conduct/index.html +973 -670
- data/docs/development/contributing/index.html +989 -583
- data/docs/development/index.html +1140 -0
- data/docs/development/index.xml +50 -0
- data/docs/development/license/index.html +973 -559
- data/docs/fonts/Inconsolata.eot +0 -0
- data/docs/fonts/Inconsolata.svg +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- data/docs/images/favicon.png +0 -0
- data/docs/images/gopher-404.jpg +0 -0
- data/docs/imported/changelog/index.html +1208 -1020
- data/docs/imported/index.html +1191 -0
- data/docs/imported/index.xml +23 -0
- data/docs/index.html +925 -558
- data/docs/index.json +183 -0
- data/docs/index.xml +208 -0
- data/docs/js/auto-complete.js +3 -0
- data/docs/js/clipboard.min.js +7 -0
- data/docs/js/featherlight.min.js +9 -0
- data/docs/js/highlight.pack.js +6 -0
- data/docs/js/html5shiv-printshiv.min.js +4 -0
- data/docs/js/hugo-learn.js +94 -0
- data/docs/js/jquery-3.3.1.min.js +2 -0
- data/docs/js/jquery.sticky.js +288 -0
- data/docs/js/learn.js +459 -0
- data/docs/js/lunr.min.js +6 -0
- data/docs/js/modernizr.custom-3.6.0.js +3 -0
- data/docs/js/perfect-scrollbar.jquery.min.js +2 -0
- data/docs/js/perfect-scrollbar.min.js +2 -0
- data/docs/js/search.js +93 -0
- data/docs/mermaid/mermaid.css +277 -0
- data/docs/mermaid/mermaid.dark.css +278 -0
- data/docs/mermaid/mermaid.forest.css +356 -0
- data/docs/mermaid/mermaid.js +8 -0
- data/docs/quick_reference/index.html +1246 -0
- data/docs/quick_reference/index.xml +11 -0
- data/docs/sitemap.xml +82 -108
- data/docs/tags/index.html +1146 -0
- data/docs/tags/index.xml +10 -0
- data/docs/tutorial/10-getting_started/index.html +994 -662
- data/docs/tutorial/20-project_layout/index.html +1013 -722
- data/docs/tutorial/30-your_first_command/index.html +1055 -734
- data/docs/tutorial/40-options_parameters_and_arguments/index.html +1139 -881
- data/docs/tutorial/50-publishing/index.html +984 -671
- data/docs/tutorial/index.html +1140 -0
- data/docs/tutorial/index.xml +67 -0
- data/docs/webfonts/fa-brands-400.eot +0 -0
- data/docs/webfonts/fa-brands-400.svg +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +965 -555
- data/docs/whoami/index.xml +11 -0
- data/docs-src/archetypes/default.md +6 -0
- data/docs-src/config.toml +37 -0
- data/docs-src/{docs/index.md → content/_index.md} +4 -4
- data/docs-src/content/advanced/_index.md +11 -0
- data/docs-src/{docs → content}/advanced/automatic_updates.md +6 -2
- data/docs-src/{docs → content}/advanced/command_types.md +8 -4
- data/docs-src/{docs → content}/advanced/distributed_state_locking.md +6 -2
- data/docs-src/{docs → content}/advanced/hooks.md +6 -2
- data/docs-src/{docs → content}/advanced/interactive_commands.md +5 -1
- data/docs-src/{docs → content}/advanced/logging.md +6 -2
- data/docs-src/{docs → content}/advanced/remote_execution.md +5 -1
- data/docs-src/{docs → content}/advanced/state_storage.md +6 -3
- data/docs-src/{docs → content}/advanced/user_config_files.md +5 -1
- data/docs-src/content/development/_index.md +11 -0
- data/docs-src/{docs/imported → content/development}/changelog.md +82 -6
- data/docs-src/{docs → content}/development/code_of_conduct.md +8 -1
- data/docs-src/{docs → content}/development/contributing.md +16 -1
- data/docs-src/{docs → content}/development/license.md +9 -2
- data/docs-src/{docs/imported/quick_reference.md → content/quick_reference/_index.md} +10 -3
- data/docs-src/{docs → content}/tutorial/10-getting_started.md +7 -1
- data/docs-src/{docs → content}/tutorial/20-project_layout.md +10 -2
- data/docs-src/{docs → content}/tutorial/30-your_first_command.md +10 -4
- data/docs-src/{docs → content}/tutorial/40-options_parameters_and_arguments.md +9 -3
- data/docs-src/{docs → content}/tutorial/50-publishing.md +9 -3
- data/docs-src/content/tutorial/_index.md +11 -0
- data/docs-src/{docs/whoami.md → content/whoami/_index.md} +11 -5
- data/docs-src/layouts/partials/logo.html +3 -0
- data/docs-src/makesite.sh +33 -7
- data/docs-src/mkdocs-archived.tar.gz +0 -0
- data/docs-src/runsite.sh +6 -1
- data/docs-src/themes/hugo-theme-learn/.editorconfig +16 -0
- data/docs-src/themes/hugo-theme-learn/.gitignore +3 -0
- data/docs-src/themes/hugo-theme-learn/.grenrc.yml +25 -0
- data/docs-src/themes/hugo-theme-learn/CHANGELOG.md +226 -0
- data/docs-src/themes/hugo-theme-learn/LICENSE.md +22 -0
- data/docs-src/themes/hugo-theme-learn/README.md +97 -0
- data/docs-src/themes/hugo-theme-learn/archetypes/chapter.md +13 -0
- data/docs-src/themes/hugo-theme-learn/archetypes/default.md +7 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/LICENSE.md +20 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/config.toml +102 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/_index.en.md +41 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/_index.fr.md +43 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/_index.en.md +12 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/_index.fr.md +12 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/_index.zh.md +12 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/configuration/_index.en.md +60 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/configuration/_index.fr.md +56 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/installation/_index.en.md +102 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/installation/_index.fr.md +100 -0
- 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 +11 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/requirements/_index.fr.md +11 -0
- 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 +194 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/_index.fr.md +194 -0
- 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 +12 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/_index.fr.md +12 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/archetypes.en.md +57 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/archetypes.fr.md +57 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/i18n/_index.en.md +78 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/i18n/_index.fr.md +78 -0
- 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 +41 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/markdown.en.md +692 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/markdown.fr.md +666 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/menushortcuts.en.md +109 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/menushortcuts.fr.md +109 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/pages/_index.en.md +166 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/pages/_index.fr.md +146 -0
- 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 +89 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/tags.en.md +39 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/tags.fr.md +40 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/credits.en.md +28 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/credits.fr.md +28 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/_index.en.md +16 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/_index.fr.md +16 -0
- 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 +85 -0
- 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 +85 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/button.en.md +16 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/button.fr.md +16 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/_index.en.md +45 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/_index.fr.md +45 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/_index.en.md +6 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/_index.fr.md +6 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.en.md +6 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.fr.md +6 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.en.md +6 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.fr.md +6 -0
- 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 +6 -0
- 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 +6 -0
- 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 +6 -0
- 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 +6 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/_index.en.md +11 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/_index.fr.md +11 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/test3.en.md +6 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/test3.fr.md +6 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-3/_index.en.md +6 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-3/_index.fr.md +6 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-4/_index.en.md +7 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-4/_index.fr.md +7 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/test.en.md +6 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/test.fr.md +6 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/expand.en.md +45 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/expand.fr.md +45 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/mermaid.en.md +283 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/mermaid.fr.md +283 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/notice.en.md +62 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/notice.fr.md +62 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/siteparam.en.md +23 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/siteparam.fr.md +23 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/showcase.en.md +13 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/content/showcase.fr.md +14 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/layouts/partials/custom-footer.html +10 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/layouts/partials/logo.html +39 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/layouts/partials/menu-footer.html +14 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/layouts/shortcodes/ghcontributors.html +31 -0
- data/docs-src/themes/hugo-theme-learn/exampleSite/static/css/theme-mine.css +104 -0
- 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 +1 -0
- 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 +26 -0
- data/docs-src/themes/hugo-theme-learn/i18n/de.toml +26 -0
- data/docs-src/themes/hugo-theme-learn/i18n/en.toml +26 -0
- data/docs-src/themes/hugo-theme-learn/i18n/es.toml +26 -0
- data/docs-src/themes/hugo-theme-learn/i18n/fr.toml +26 -0
- data/docs-src/themes/hugo-theme-learn/i18n/hi.toml +26 -0
- data/docs-src/themes/hugo-theme-learn/i18n/id.toml +26 -0
- data/docs-src/themes/hugo-theme-learn/i18n/ja.toml +26 -0
- data/docs-src/themes/hugo-theme-learn/i18n/nl.toml +26 -0
- data/docs-src/themes/hugo-theme-learn/i18n/pt.toml +26 -0
- data/docs-src/themes/hugo-theme-learn/i18n/ru.toml +26 -0
- data/docs-src/themes/hugo-theme-learn/i18n/tr.toml +26 -0
- data/docs-src/themes/hugo-theme-learn/i18n/zh-cn.toml +26 -0
- 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 +56 -0
- data/docs-src/themes/hugo-theme-learn/layouts/_default/list.html +22 -0
- data/docs-src/themes/hugo-theme-learn/layouts/_default/single.html +12 -0
- data/docs-src/themes/hugo-theme-learn/layouts/index.html +31 -0
- data/docs-src/themes/hugo-theme-learn/layouts/index.json +12 -0
- data/docs-src/themes/hugo-theme-learn/layouts/partials/custom-comments.html +3 -0
- data/docs-src/themes/hugo-theme-learn/layouts/partials/custom-footer.html +5 -0
- data/docs-src/themes/hugo-theme-learn/layouts/partials/custom-header.html +5 -0
- data/docs-src/themes/hugo-theme-learn/layouts/partials/favicon.html +1 -0
- data/docs-src/themes/hugo-theme-learn/layouts/partials/footer.html +77 -0
- data/docs-src/themes/hugo-theme-learn/layouts/partials/header.html +111 -0
- data/docs-src/themes/hugo-theme-learn/layouts/partials/logo.html +19 -0
- data/docs-src/themes/hugo-theme-learn/layouts/partials/menu-footer.html +1 -0
- data/docs-src/themes/hugo-theme-learn/layouts/partials/menu.html +151 -0
- data/docs-src/themes/hugo-theme-learn/layouts/partials/meta.html +2 -0
- data/docs-src/themes/hugo-theme-learn/layouts/partials/search.html +16 -0
- data/docs-src/themes/hugo-theme-learn/layouts/partials/tags.html +7 -0
- data/docs-src/themes/hugo-theme-learn/layouts/partials/toc.html +5 -0
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/attachments.html +36 -0
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/button.html +14 -0
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/children.html +101 -0
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/expand.html +17 -0
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/mermaid.html +2 -0
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/notice.html +2 -0
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/ref.html +14 -0
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/relref.html +14 -0
- data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/siteparam.html +7 -0
- data/docs-src/themes/hugo-theme-learn/netlify.toml +23 -0
- data/docs-src/themes/hugo-theme-learn/static/css/atom-one-dark-reasonable.css +77 -0
- data/docs-src/themes/hugo-theme-learn/static/css/auto-complete.css +47 -0
- data/docs-src/themes/hugo-theme-learn/static/css/featherlight.min.css +8 -0
- data/docs-src/themes/hugo-theme-learn/static/css/fontawesome-all.min.css +1 -0
- data/docs-src/themes/hugo-theme-learn/static/css/hugo-theme.css +254 -0
- data/docs-src/themes/hugo-theme-learn/static/css/hybrid.css +102 -0
- data/docs-src/themes/hugo-theme-learn/static/css/nucleus.css +615 -0
- data/docs-src/themes/hugo-theme-learn/static/css/perfect-scrollbar.min.css +2 -0
- data/docs-src/themes/hugo-theme-learn/static/css/tags.css +49 -0
- data/docs-src/themes/hugo-theme-learn/static/css/theme-blue.css +111 -0
- data/docs-src/themes/hugo-theme-learn/static/css/theme-green.css +111 -0
- data/docs-src/themes/hugo-theme-learn/static/css/theme-red.css +111 -0
- data/docs-src/themes/hugo-theme-learn/static/css/theme.css +1136 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Inconsolata.eot +0 -0
- data/docs-src/themes/hugo-theme-learn/static/fonts/Inconsolata.svg +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +3 -0
- data/docs-src/themes/hugo-theme-learn/static/js/clipboard.min.js +7 -0
- data/docs-src/themes/hugo-theme-learn/static/js/featherlight.min.js +9 -0
- data/docs-src/themes/hugo-theme-learn/static/js/highlight.pack.js +6 -0
- data/docs-src/themes/hugo-theme-learn/static/js/hugo-learn.js +94 -0
- data/docs-src/themes/hugo-theme-learn/static/js/jquery-3.3.1.min.js +2 -0
- data/docs-src/themes/hugo-theme-learn/static/js/jquery.sticky.js +288 -0
- data/docs-src/themes/hugo-theme-learn/static/js/learn.js +459 -0
- data/docs-src/themes/hugo-theme-learn/static/js/lunr.min.js +6 -0
- data/docs-src/themes/hugo-theme-learn/static/js/modernizr.custom-3.6.0.js +3 -0
- data/docs-src/themes/hugo-theme-learn/static/js/perfect-scrollbar.jquery.min.js +2 -0
- data/docs-src/themes/hugo-theme-learn/static/js/perfect-scrollbar.min.js +2 -0
- data/docs-src/themes/hugo-theme-learn/static/js/search.js +93 -0
- data/docs-src/themes/hugo-theme-learn/static/mermaid/mermaid.css +277 -0
- data/docs-src/themes/hugo-theme-learn/static/mermaid/mermaid.dark.css +278 -0
- data/docs-src/themes/hugo-theme-learn/static/mermaid/mermaid.forest.css +356 -0
- data/docs-src/themes/hugo-theme-learn/static/mermaid/mermaid.js +8 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +21 -0
- data/docs-src/themes/hugo-theme-learn/wercker.yml +16 -0
- data/exe/rbcli +1 -0
- data/lib/rbcli/configuration/configurate_blocks/me.rb +5 -5
- data/lib/rbcli/engine/command.rb +3 -2
- data/lib/rbcli/util/deprecation_warning.rb +21 -4
- data/lib/rbcli/util/msg.rb +0 -1
- data/lib/rbcli/version.rb +1 -1
- data/lib/rbcli-tool/project.rb +6 -2
- data/rbcli.gemspec +12 -13
- data/skeletons/project/.rakeTasks +7 -0
- data/skeletons/project/Gemfile +1 -1
- data/skeletons/project/application/commands/scripts/script.sh +6 -1
- data/skeletons/project/config/general.rb +1 -1
- data/skeletons/project/exe/executable +1 -3
- data/skeletons/project/lib/lib.erb +9 -0
- data/skeletons/project/spec/spec_helper.rb +7 -7
- data/skeletons/project/spec/untitled_spec.rb +6 -6
- data/skeletons/project/untitled.gemspec +30 -30
- metadata +384 -98
- data/docs/assets/fonts/font-awesome.css +0 -4
- data/docs/assets/fonts/material-icons.css +0 -13
- data/docs/assets/fonts/specimen/FontAwesome.ttf +0 -0
- data/docs/assets/fonts/specimen/FontAwesome.woff +0 -0
- data/docs/assets/fonts/specimen/FontAwesome.woff2 +0 -0
- data/docs/assets/fonts/specimen/MaterialIcons-Regular.ttf +0 -0
- data/docs/assets/fonts/specimen/MaterialIcons-Regular.woff +0 -0
- data/docs/assets/fonts/specimen/MaterialIcons-Regular.woff2 +0 -0
- data/docs/assets/images/favicon.png +0 -0
- data/docs/assets/images/icons/bitbucket.1b09e088.svg +0 -20
- data/docs/assets/images/icons/github.f0b8504a.svg +0 -18
- data/docs/assets/images/icons/gitlab.6dd19c00.svg +0 -38
- data/docs/assets/javascripts/application.583bbe55.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.da.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.de.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.du.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.es.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.fi.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.fr.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.hu.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.it.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.jp.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.multi.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.no.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.pt.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.ro.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.ru.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.stemmer.support.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.sv.js +0 -1
- data/docs/assets/javascripts/lunr/lunr.tr.js +0 -1
- data/docs/assets/javascripts/lunr/tinyseg.js +0 -1
- data/docs/assets/javascripts/modernizr.1aa3b519.js +0 -1
- data/docs/assets/stylesheets/application-palette.22915126.css +0 -1176
- data/docs/assets/stylesheets/application.451f80e5.css +0 -2552
- data/docs/imported/quick_reference/index.html +0 -1120
- data/docs/search/search_index.json +0 -1
- data/docs/sitemap.xml.gz +0 -0
- data/docs-src/mkdocs.yml +0 -79
- data/skeletons/project/lib/.keep +0 -0
@@ -1,942 +1,1263 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en" class="js csstransforms3d">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<meta name="generator" content="Hugo 0.88.1" />
|
7
|
+
<meta name="description" content="">
|
1
8
|
|
2
9
|
|
10
|
+
<link rel="icon" href="/rbcli/images/favicon.png" type="image/png">
|
3
11
|
|
12
|
+
<title>Your First Command :: RBCli Documentation</title>
|
4
13
|
|
5
|
-
<!DOCTYPE html>
|
6
|
-
<html lang="en" class="no-js">
|
7
|
-
<head>
|
8
|
-
|
9
|
-
<meta charset="utf-8">
|
10
|
-
<meta name="viewport" content="width=device-width,initial-scale=1">
|
11
|
-
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
12
|
-
|
13
|
-
<meta name="description" content="Description">
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
<meta name="author" content="Andrew Khoury">
|
18
|
-
|
19
|
-
|
20
|
-
<meta name="lang:clipboard.copy" content="Copy to clipboard">
|
21
|
-
|
22
|
-
<meta name="lang:clipboard.copied" content="Copied to clipboard">
|
23
|
-
|
24
|
-
<meta name="lang:search.language" content="en">
|
25
|
-
|
26
|
-
<meta name="lang:search.pipeline.stopwords" content="True">
|
27
|
-
|
28
|
-
<meta name="lang:search.pipeline.trimmer" content="True">
|
29
|
-
|
30
|
-
<meta name="lang:search.result.none" content="No matching documents">
|
31
|
-
|
32
|
-
<meta name="lang:search.result.one" content="1 matching document">
|
33
|
-
|
34
|
-
<meta name="lang:search.result.other" content="# matching documents">
|
35
|
-
|
36
|
-
<meta name="lang:search.tokenizer" content="[\s\-]+">
|
37
|
-
|
38
|
-
<link rel="shortcut icon" href="../../assets/images/favicon.png">
|
39
|
-
<meta name="generator" content="mkdocs-1.0.3, mkdocs-material-3.0.4">
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
<title>Your First Command - RBCli Documentation</title>
|
44
|
-
|
45
14
|
|
15
|
+
<link href="/rbcli/css/nucleus.css?1634703589" rel="stylesheet">
|
16
|
+
<link href="/rbcli/css/fontawesome-all.min.css?1634703589" rel="stylesheet">
|
17
|
+
<link href="/rbcli/css/hybrid.css?1634703589" rel="stylesheet">
|
18
|
+
<link href="/rbcli/css/featherlight.min.css?1634703589" rel="stylesheet">
|
19
|
+
<link href="/rbcli/css/perfect-scrollbar.min.css?1634703589" rel="stylesheet">
|
20
|
+
<link href="/rbcli/css/auto-complete.css?1634703589" rel="stylesheet">
|
21
|
+
<link href="/rbcli/css/atom-one-dark-reasonable.css?1634703589" rel="stylesheet">
|
22
|
+
<link href="/rbcli/css/theme.css?1634703589" rel="stylesheet">
|
23
|
+
<link href="/rbcli/css/hugo-theme.css?1634703589" rel="stylesheet">
|
46
24
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
<script src="../../assets/javascripts/modernizr.1aa3b519.js"></script>
|
25
|
+
<link href="/rbcli/css/theme-blue.css?1634703589" rel="stylesheet">
|
53
26
|
|
54
27
|
|
28
|
+
|
29
|
+
<script src="/rbcli/js/jquery-3.3.1.min.js?1634703589"></script>
|
30
|
+
|
31
|
+
<style>
|
32
|
+
:root #header + #content > #left > #rlblock_left{
|
33
|
+
display:none !important;
|
34
|
+
}
|
55
35
|
|
56
|
-
|
57
|
-
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono">
|
58
|
-
<style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
|
59
|
-
|
36
|
+
</style>
|
60
37
|
|
61
|
-
|
38
|
+
</head>
|
39
|
+
<body class="" data-url="/rbcli/tutorial/30-your_first_command/">
|
40
|
+
<nav id="sidebar" class="">
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
<div id="header-wrapper">
|
45
|
+
<div id="header">
|
46
|
+
<a id="logo" href="https://akhoury6.github.io/rbcli/" style="font-size: 40px">
|
47
|
+
<span class="fas fa-terminal"></span> 𝚁𝙱𝙲𝚕𝚒
|
48
|
+
</a>
|
49
|
+
|
50
|
+
</div>
|
62
51
|
|
52
|
+
<div class="searchbox">
|
53
|
+
<label for="search-by"><i class="fas fa-search"></i></label>
|
54
|
+
<input data-search-input id="search-by" type="search" placeholder="Search...">
|
55
|
+
<span data-search-clear=""><i class="fas fa-times"></i></span>
|
56
|
+
</div>
|
57
|
+
|
58
|
+
<script type="text/javascript" src="/rbcli/js/lunr.min.js?1634703589"></script>
|
59
|
+
<script type="text/javascript" src="/rbcli/js/auto-complete.js?1634703589"></script>
|
60
|
+
<script type="text/javascript">
|
63
61
|
|
64
|
-
|
65
|
-
|
66
|
-
<body dir="ltr">
|
67
|
-
|
68
|
-
<svg class="md-svg">
|
69
|
-
<defs>
|
70
|
-
|
71
|
-
|
72
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="416" height="448"
|
73
|
-
viewBox="0 0 416 448" id="__github">
|
74
|
-
<path fill="currentColor" d="M160 304q0 10-3.125 20.5t-10.75 19-18.125
|
75
|
-
8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19 18.125-8.5
|
76
|
-
18.125 8.5 10.75 19 3.125 20.5zM320 304q0 10-3.125 20.5t-10.75
|
77
|
-
19-18.125 8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19
|
78
|
-
18.125-8.5 18.125 8.5 10.75 19 3.125 20.5zM360
|
79
|
-
304q0-30-17.25-51t-46.75-21q-10.25 0-48.75 5.25-17.75 2.75-39.25
|
80
|
-
2.75t-39.25-2.75q-38-5.25-48.75-5.25-29.5 0-46.75 21t-17.25 51q0 22 8
|
81
|
-
38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0
|
82
|
-
37.25-1.75t35-7.375 30.5-15 20.25-25.75 8-38.375zM416 260q0 51.75-15.25
|
83
|
-
82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5-41.75
|
84
|
-
1.125q-19.5 0-35.5-0.75t-36.875-3.125-38.125-7.5-34.25-12.875-30.25-20.25-21.5-28.75q-15.5-30.75-15.5-82.75
|
85
|
-
0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25
|
86
|
-
30.875q36.75-8.75 77.25-8.75 37 0 70 8 26.25-20.5
|
87
|
-
46.75-30.25t47.25-9.75q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34
|
88
|
-
99.5z" />
|
89
|
-
</svg>
|
90
|
-
|
91
|
-
</defs>
|
92
|
-
</svg>
|
93
|
-
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
94
|
-
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
95
|
-
<label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
|
96
|
-
|
97
|
-
<a href="../../#your-first-command" tabindex="1" class="md-skip">
|
98
|
-
Skip to content
|
99
|
-
</a>
|
62
|
+
var baseurl = "https:\/\/akhoury6.github.io\/rbcli\/";
|
100
63
|
|
64
|
+
</script>
|
65
|
+
<script type="text/javascript" src="/rbcli/js/search.js?1634703589"></script>
|
66
|
+
|
101
67
|
|
102
|
-
<header class="md-header" data-md-component="header">
|
103
|
-
<nav class="md-header-nav md-grid">
|
104
|
-
<div class="md-flex">
|
105
|
-
<div class="md-flex__cell md-flex__cell--shrink">
|
106
|
-
<a href="../.." title="RBCli Documentation" class="md-header-nav__button md-logo">
|
107
|
-
|
108
|
-
<i class="md-icon">devices</i>
|
109
|
-
|
110
|
-
</a>
|
111
|
-
</div>
|
112
|
-
<div class="md-flex__cell md-flex__cell--shrink">
|
113
|
-
<label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
|
114
|
-
</div>
|
115
|
-
<div class="md-flex__cell md-flex__cell--stretch">
|
116
|
-
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
|
117
|
-
|
118
|
-
|
119
|
-
<span class="md-header-nav__topic">
|
120
|
-
RBCli Documentation
|
121
|
-
</span>
|
122
|
-
<span class="md-header-nav__topic">
|
123
|
-
Your First Command
|
124
|
-
</span>
|
125
|
-
|
126
|
-
|
127
|
-
</div>
|
128
|
-
</div>
|
129
|
-
<div class="md-flex__cell md-flex__cell--shrink">
|
130
|
-
|
131
|
-
|
132
|
-
<label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
|
133
|
-
|
134
|
-
<div class="md-search" data-md-component="search" role="dialog">
|
135
|
-
<label class="md-search__overlay" for="__search"></label>
|
136
|
-
<div class="md-search__inner" role="search">
|
137
|
-
<form class="md-search__form" name="search">
|
138
|
-
<input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
|
139
|
-
<label class="md-icon md-search__icon" for="__search"></label>
|
140
|
-
<button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
|
141
|
-

|
142
|
-
</button>
|
143
|
-
</form>
|
144
|
-
<div class="md-search__output">
|
145
|
-
<div class="md-search__scrollwrap" data-md-scrollfix>
|
146
|
-
<div class="md-search-result" data-md-component="result">
|
147
|
-
<div class="md-search-result__meta">
|
148
|
-
Type to start searching
|
149
|
-
</div>
|
150
|
-
<ol class="md-search-result__list"></ol>
|
151
|
-
</div>
|
152
|
-
</div>
|
153
|
-
</div>
|
154
68
|
</div>
|
155
|
-
|
69
|
+
|
70
|
+
<div class="highlightable">
|
71
|
+
<ul class="topics">
|
72
|
+
|
73
|
+
|
74
|
+
|
156
75
|
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
<li data-nav-id="/rbcli/quick_reference/" title="Quick Reference" class="dd-item
|
157
84
|
|
158
|
-
|
85
|
+
|
86
|
+
|
87
|
+
">
|
88
|
+
<a href="/rbcli/quick_reference/">
|
89
|
+
Quick Reference
|
90
|
+
|
91
|
+
</a>
|
159
92
|
|
160
|
-
|
161
|
-
|
162
|
-
|
93
|
+
|
94
|
+
</li>
|
95
|
+
|
96
|
+
|
163
97
|
|
98
|
+
|
99
|
+
|
164
100
|
|
165
|
-
|
166
101
|
|
167
102
|
|
168
|
-
<a href="https://github.com/akhoury6/rbcli/" title="Go to repository" class="md-source" data-md-source="github">
|
169
|
-
|
170
|
-
<div class="md-source__icon">
|
171
|
-
<svg viewBox="0 0 24 24" width="24" height="24">
|
172
|
-
<use xlink:href="#__github" width="24" height="24"></use>
|
173
|
-
</svg>
|
174
|
-
</div>
|
175
|
-
|
176
|
-
<div class="md-source__repository">
|
177
|
-
GitHub
|
178
|
-
</div>
|
179
|
-
</a>
|
180
103
|
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
</div>
|
185
|
-
</nav>
|
186
|
-
</header>
|
104
|
+
|
105
|
+
|
187
106
|
|
188
|
-
<
|
189
|
-
|
107
|
+
<li data-nav-id="/rbcli/tutorial/" title="Tutorial" class="dd-item
|
108
|
+
parent
|
109
|
+
|
190
110
|
|
111
|
+
">
|
112
|
+
<a href="/rbcli/tutorial/">
|
113
|
+
Tutorial
|
114
|
+
|
115
|
+
</a>
|
191
116
|
|
192
117
|
|
118
|
+
<ul>
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
|
193
123
|
|
124
|
+
|
125
|
+
|
126
|
+
|
194
127
|
|
195
|
-
|
196
128
|
|
197
|
-
<nav class="md-tabs md-tabs--active" data-md-component="tabs">
|
198
|
-
<div class="md-tabs__inner md-grid">
|
199
|
-
<ul class="md-tabs__list">
|
200
|
-
|
201
|
-
|
202
|
-
<li class="md-tabs__item">
|
203
|
-
|
204
|
-
<a href="../.." title="Home" class="md-tabs__link">
|
205
|
-
Home
|
206
|
-
</a>
|
207
|
-
|
208
|
-
</li>
|
209
129
|
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
130
|
+
|
131
|
+
|
215
132
|
|
216
|
-
|
217
|
-
|
218
|
-
<a href="
|
219
|
-
|
133
|
+
|
134
|
+
<li data-nav-id="/rbcli/tutorial/10-getting_started/" title="Getting Started" class="dd-item ">
|
135
|
+
<a href="/rbcli/tutorial/10-getting_started/">
|
136
|
+
<b>1. </b>Getting Started
|
137
|
+
|
220
138
|
</a>
|
221
|
-
|
222
139
|
</li>
|
140
|
+
|
223
141
|
|
142
|
+
|
224
143
|
|
225
|
-
|
226
|
-
|
227
|
-
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
|
152
|
+
|
228
153
|
|
229
|
-
|
230
|
-
|
231
|
-
<a href="
|
232
|
-
|
154
|
+
|
155
|
+
<li data-nav-id="/rbcli/tutorial/20-project_layout/" title="The Project Layout" class="dd-item ">
|
156
|
+
<a href="/rbcli/tutorial/20-project_layout/">
|
157
|
+
<b>2. </b>The Project Layout
|
158
|
+
|
233
159
|
</a>
|
234
|
-
|
235
160
|
</li>
|
161
|
+
|
236
162
|
|
163
|
+
|
237
164
|
|
238
|
-
|
239
|
-
|
240
|
-
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
|
241
174
|
|
242
|
-
|
243
|
-
|
244
|
-
<a href="
|
245
|
-
|
175
|
+
|
176
|
+
<li data-nav-id="/rbcli/tutorial/30-your_first_command/" title="Your First Command" class="dd-item active">
|
177
|
+
<a href="/rbcli/tutorial/30-your_first_command/">
|
178
|
+
<b>3. </b>Your First Command
|
179
|
+
|
246
180
|
</a>
|
247
|
-
|
248
181
|
</li>
|
182
|
+
|
249
183
|
|
184
|
+
|
250
185
|
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
</ul>
|
255
|
-
</div>
|
256
|
-
</nav>
|
257
|
-
|
258
|
-
<main class="md-main">
|
259
|
-
<div class="md-main__inner md-grid" data-md-component="container">
|
186
|
+
|
260
187
|
|
261
188
|
|
262
|
-
|
263
|
-
<div class="md-sidebar__scrollwrap">
|
264
|
-
<div class="md-sidebar__inner">
|
265
|
-
<nav class="md-nav md-nav--primary" data-md-level="0">
|
266
|
-
<label class="md-nav__title md-nav__title--site" for="__drawer">
|
267
|
-
<a href="../.." title="RBCli Documentation" class="md-nav__button md-logo">
|
268
|
-
|
269
|
-
<i class="md-icon">devices</i>
|
270
|
-
|
271
|
-
</a>
|
272
|
-
RBCli Documentation
|
273
|
-
</label>
|
274
|
-
|
275
|
-
<div class="md-nav__source">
|
276
|
-
|
277
|
-
|
189
|
+
|
278
190
|
|
279
|
-
|
280
191
|
|
281
192
|
|
282
|
-
<a href="https://github.com/akhoury6/rbcli/" title="Go to repository" class="md-source" data-md-source="github">
|
283
|
-
|
284
|
-
<div class="md-source__icon">
|
285
|
-
<svg viewBox="0 0 24 24" width="24" height="24">
|
286
|
-
<use xlink:href="#__github" width="24" height="24"></use>
|
287
|
-
</svg>
|
288
|
-
</div>
|
289
|
-
|
290
|
-
<div class="md-source__repository">
|
291
|
-
GitHub
|
292
|
-
</div>
|
293
|
-
</a>
|
294
193
|
|
295
|
-
|
194
|
+
|
296
195
|
|
297
|
-
<ul class="md-nav__list" data-md-scrollfix>
|
298
196
|
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
197
|
+
<li data-nav-id="/rbcli/tutorial/40-options_parameters_and_arguments/" title="Options, Parameters, and Arguments" class="dd-item ">
|
198
|
+
<a href="/rbcli/tutorial/40-options_parameters_and_arguments/">
|
199
|
+
<b>4. </b>Options, Parameters, and Arguments
|
200
|
+
|
201
|
+
</a>
|
202
|
+
</li>
|
203
|
+
|
204
|
+
|
205
|
+
|
303
206
|
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
</li>
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
|
309
211
|
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
212
|
|
315
213
|
|
316
|
-
<li class="md-nav__item">
|
317
|
-
<a href="../../imported/quick_reference/" title="Quick Reference" class="md-nav__link">
|
318
|
-
Quick Reference
|
319
|
-
</a>
|
320
|
-
</li>
|
321
214
|
|
215
|
+
|
216
|
+
|
322
217
|
|
323
|
-
|
324
|
-
|
325
|
-
|
218
|
+
<li data-nav-id="/rbcli/tutorial/50-publishing/" title="Publishing Your Application" class="dd-item ">
|
219
|
+
<a href="/rbcli/tutorial/50-publishing/">
|
220
|
+
<b>5. </b>Publishing Your Application
|
221
|
+
|
222
|
+
</a>
|
223
|
+
</li>
|
224
|
+
|
225
|
+
|
226
|
+
|
326
227
|
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
</ul>
|
232
|
+
|
233
|
+
</li>
|
327
234
|
|
235
|
+
|
328
236
|
|
237
|
+
|
238
|
+
|
329
239
|
|
330
|
-
|
331
|
-
|
332
|
-
|
240
|
+
|
241
|
+
|
242
|
+
|
243
|
+
|
244
|
+
|
333
245
|
|
334
|
-
<
|
335
|
-
Tutorial
|
336
|
-
</label>
|
337
|
-
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
|
338
|
-
<label class="md-nav__title" for="nav-3">
|
339
|
-
Tutorial
|
340
|
-
</label>
|
341
|
-
<ul class="md-nav__list" data-md-scrollfix>
|
246
|
+
<li data-nav-id="/rbcli/advanced/" title="Advanced" class="dd-item
|
342
247
|
|
343
248
|
|
249
|
+
|
250
|
+
">
|
251
|
+
<a href="/rbcli/advanced/">
|
252
|
+
Advanced
|
344
253
|
|
254
|
+
</a>
|
255
|
+
|
256
|
+
|
257
|
+
<ul>
|
345
258
|
|
346
259
|
|
347
|
-
|
348
|
-
|
349
|
-
<li class="md-nav__item">
|
350
|
-
<a href="../10-getting_started/" title="Getting Started" class="md-nav__link">
|
351
|
-
Getting Started
|
352
|
-
</a>
|
353
|
-
</li>
|
354
|
-
|
355
|
-
|
356
260
|
|
357
261
|
|
262
|
+
|
358
263
|
|
264
|
+
|
265
|
+
|
266
|
+
|
359
267
|
|
360
268
|
|
361
|
-
<li class="md-nav__item">
|
362
|
-
<a href="../20-project_layout/" title="The Project Layout" class="md-nav__link">
|
363
|
-
The Project Layout
|
364
|
-
</a>
|
365
|
-
</li>
|
366
269
|
|
270
|
+
|
271
|
+
|
272
|
+
|
273
|
+
<li data-nav-id="/rbcli/advanced/automatic_updates/" title="Automatic Updates" class="dd-item ">
|
274
|
+
<a href="/rbcli/advanced/automatic_updates/">
|
275
|
+
Automatic Updates
|
367
276
|
|
277
|
+
</a>
|
278
|
+
</li>
|
279
|
+
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
|
368
284
|
|
369
|
-
|
370
|
-
|
285
|
+
|
286
|
+
|
371
287
|
|
372
|
-
|
373
288
|
|
374
289
|
|
375
|
-
|
376
|
-
|
377
|
-
<input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
<label class="md-nav__link md-nav__link--active" for="__toc">
|
383
|
-
Your First Command
|
384
|
-
</label>
|
385
|
-
|
386
|
-
<a href="./" title="Your First Command" class="md-nav__link md-nav__link--active">
|
387
|
-
Your First Command
|
388
|
-
</a>
|
389
|
-
|
390
|
-
|
391
|
-
<nav class="md-nav md-nav--secondary">
|
392
|
-
|
290
|
+
|
291
|
+
|
393
292
|
|
394
293
|
|
294
|
+
<li data-nav-id="/rbcli/advanced/command_types/" title="Command Types" class="dd-item ">
|
295
|
+
<a href="/rbcli/advanced/command_types/">
|
296
|
+
Command Types
|
297
|
+
|
298
|
+
</a>
|
299
|
+
</li>
|
300
|
+
|
395
301
|
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
|
312
|
+
|
396
313
|
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
314
|
+
|
315
|
+
<li data-nav-id="/rbcli/advanced/distributed_state_locking/" title="Distributed State and Locking" class="dd-item ">
|
316
|
+
<a href="/rbcli/advanced/distributed_state_locking/">
|
317
|
+
Distributed State and Locking
|
318
|
+
|
319
|
+
</a>
|
320
|
+
</li>
|
321
|
+
|
404
322
|
|
405
|
-
|
406
|
-
|
407
|
-
<li class="md-nav__item">
|
408
|
-
<a href="#the-command-declaration" title="The Command Declaration" class="md-nav__link">
|
409
|
-
The Command Declaration
|
410
|
-
</a>
|
411
|
-
|
412
|
-
</li>
|
413
|
-
|
414
|
-
<li class="md-nav__item">
|
415
|
-
<a href="#creating-the-list-command" title="Creating the "list" Command" class="md-nav__link">
|
416
|
-
Creating the "list" Command
|
417
|
-
</a>
|
418
|
-
|
419
|
-
</li>
|
420
|
-
|
421
|
-
<li class="md-nav__item">
|
422
|
-
<a href="#next-steps" title="Next Steps" class="md-nav__link">
|
423
|
-
Next Steps
|
424
|
-
</a>
|
425
|
-
|
426
|
-
</li>
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
</ul>
|
433
|
-
|
434
|
-
</nav>
|
435
|
-
|
436
|
-
</li>
|
323
|
+
|
437
324
|
|
438
|
-
|
439
|
-
|
440
|
-
|
325
|
+
|
441
326
|
|
327
|
+
|
328
|
+
|
442
329
|
|
443
330
|
|
444
|
-
<li class="md-nav__item">
|
445
|
-
<a href="../40-options_parameters_and_arguments/" title="Options, Parameters, and Arguments" class="md-nav__link">
|
446
|
-
Options, Parameters, and Arguments
|
447
|
-
</a>
|
448
|
-
</li>
|
449
331
|
|
332
|
+
|
333
|
+
|
334
|
+
|
335
|
+
|
336
|
+
<li data-nav-id="/rbcli/advanced/hooks/" title="Execution Hooks" class="dd-item ">
|
337
|
+
<a href="/rbcli/advanced/hooks/">
|
338
|
+
Execution Hooks
|
450
339
|
|
340
|
+
</a>
|
341
|
+
</li>
|
342
|
+
|
343
|
+
|
344
|
+
|
345
|
+
|
346
|
+
|
451
347
|
|
452
|
-
|
453
|
-
|
348
|
+
|
349
|
+
|
454
350
|
|
455
351
|
|
456
|
-
<li class="md-nav__item">
|
457
|
-
<a href="../50-publishing/" title="Publishing and Distribution" class="md-nav__link">
|
458
|
-
Publishing and Distribution
|
459
|
-
</a>
|
460
|
-
</li>
|
461
352
|
|
462
|
-
|
463
|
-
</ul>
|
464
|
-
</nav>
|
465
|
-
</li>
|
466
353
|
|
354
|
+
|
355
|
+
|
467
356
|
|
468
|
-
|
469
|
-
|
470
|
-
|
357
|
+
<li data-nav-id="/rbcli/advanced/interactive_commands/" title="Interactive Commands" class="dd-item ">
|
358
|
+
<a href="/rbcli/advanced/interactive_commands/">
|
359
|
+
Interactive Commands
|
360
|
+
|
361
|
+
</a>
|
362
|
+
</li>
|
363
|
+
|
364
|
+
|
365
|
+
|
366
|
+
|
367
|
+
|
368
|
+
|
369
|
+
|
370
|
+
|
471
371
|
|
472
372
|
|
473
|
-
|
474
|
-
|
475
|
-
|
373
|
+
|
374
|
+
|
375
|
+
|
376
|
+
|
476
377
|
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
|
481
|
-
<label class="md-nav__title" for="nav-4">
|
482
|
-
Advanced Features
|
483
|
-
</label>
|
484
|
-
<ul class="md-nav__list" data-md-scrollfix>
|
378
|
+
<li data-nav-id="/rbcli/advanced/logging/" title="Logging" class="dd-item ">
|
379
|
+
<a href="/rbcli/advanced/logging/">
|
380
|
+
Logging
|
485
381
|
|
486
|
-
|
487
|
-
|
488
|
-
|
382
|
+
</a>
|
383
|
+
</li>
|
384
|
+
|
385
|
+
|
386
|
+
|
387
|
+
|
388
|
+
|
489
389
|
|
390
|
+
|
391
|
+
|
490
392
|
|
491
393
|
|
492
|
-
<li class="md-nav__item">
|
493
|
-
<a href="../../advanced/command_types/" title="Command Types" class="md-nav__link">
|
494
|
-
Command Types
|
495
|
-
</a>
|
496
|
-
</li>
|
497
394
|
|
395
|
+
|
396
|
+
|
397
|
+
|
398
|
+
|
399
|
+
<li data-nav-id="/rbcli/advanced/remote_execution/" title="Remote Execution" class="dd-item ">
|
400
|
+
<a href="/rbcli/advanced/remote_execution/">
|
401
|
+
Remote Execution
|
498
402
|
|
403
|
+
</a>
|
404
|
+
</li>
|
405
|
+
|
406
|
+
|
407
|
+
|
408
|
+
|
409
|
+
|
499
410
|
|
500
|
-
|
501
|
-
|
411
|
+
|
412
|
+
|
502
413
|
|
503
414
|
|
504
|
-
<li class="md-nav__item">
|
505
|
-
<a href="../../advanced/user_config_files/" title="User Config Files" class="md-nav__link">
|
506
|
-
User Config Files
|
507
|
-
</a>
|
508
|
-
</li>
|
509
415
|
|
416
|
+
|
417
|
+
|
418
|
+
|
419
|
+
|
420
|
+
<li data-nav-id="/rbcli/advanced/state_storage/" title="State Storage" class="dd-item ">
|
421
|
+
<a href="/rbcli/advanced/state_storage/">
|
422
|
+
State Storage
|
510
423
|
|
424
|
+
</a>
|
425
|
+
</li>
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
|
430
|
+
|
511
431
|
|
512
|
-
|
513
|
-
|
432
|
+
|
433
|
+
|
514
434
|
|
515
435
|
|
516
|
-
<li class="md-nav__item">
|
517
|
-
<a href="../../advanced/hooks/" title="Hooks" class="md-nav__link">
|
518
|
-
Hooks
|
519
|
-
</a>
|
520
|
-
</li>
|
521
436
|
|
437
|
+
|
438
|
+
|
439
|
+
|
440
|
+
|
441
|
+
<li data-nav-id="/rbcli/advanced/user_config_files/" title="User Configuration Files" class="dd-item ">
|
442
|
+
<a href="/rbcli/advanced/user_config_files/">
|
443
|
+
User Configuration Files
|
522
444
|
|
445
|
+
</a>
|
446
|
+
</li>
|
447
|
+
|
448
|
+
|
449
|
+
|
450
|
+
|
451
|
+
|
523
452
|
|
453
|
+
|
454
|
+
</ul>
|
455
|
+
|
456
|
+
</li>
|
457
|
+
|
458
|
+
|
459
|
+
|
524
460
|
|
525
461
|
|
526
462
|
|
527
463
|
|
528
|
-
<li class="md-nav__item">
|
529
|
-
<a href="../../advanced/logging/" title="Logging" class="md-nav__link">
|
530
|
-
Logging
|
531
|
-
</a>
|
532
|
-
</li>
|
533
464
|
|
465
|
+
|
466
|
+
|
467
|
+
|
468
|
+
|
469
|
+
<li data-nav-id="/rbcli/development/" title="Development" class="dd-item
|
534
470
|
|
471
|
+
|
472
|
+
|
473
|
+
">
|
474
|
+
<a href="/rbcli/development/">
|
475
|
+
Development
|
476
|
+
|
477
|
+
</a>
|
478
|
+
|
479
|
+
|
480
|
+
<ul>
|
481
|
+
|
535
482
|
|
536
483
|
|
537
484
|
|
485
|
+
|
486
|
+
|
487
|
+
|
488
|
+
|
538
489
|
|
539
490
|
|
540
|
-
<li class="md-nav__item">
|
541
|
-
<a href="../../advanced/automatic_updates/" title="Automatic Updates" class="md-nav__link">
|
542
|
-
Automatic Updates
|
543
|
-
</a>
|
544
|
-
</li>
|
545
491
|
|
492
|
+
|
493
|
+
|
494
|
+
|
495
|
+
|
496
|
+
<li data-nav-id="/rbcli/development/contributing/" title="Contribution Guide" class="dd-item ">
|
497
|
+
<a href="/rbcli/development/contributing/">
|
498
|
+
Contribution Guide
|
546
499
|
|
500
|
+
</a>
|
501
|
+
</li>
|
502
|
+
|
503
|
+
|
504
|
+
|
505
|
+
|
506
|
+
|
547
507
|
|
548
|
-
|
549
|
-
|
508
|
+
|
509
|
+
|
550
510
|
|
551
511
|
|
552
|
-
<li class="md-nav__item">
|
553
|
-
<a href="../../advanced/state_storage/" title="State Storage" class="md-nav__link">
|
554
|
-
State Storage
|
555
|
-
</a>
|
556
|
-
</li>
|
557
512
|
|
513
|
+
|
514
|
+
|
515
|
+
|
516
|
+
|
517
|
+
<li data-nav-id="/rbcli/development/license/" title="License Info" class="dd-item ">
|
518
|
+
<a href="/rbcli/development/license/">
|
519
|
+
License Info
|
558
520
|
|
521
|
+
</a>
|
522
|
+
</li>
|
523
|
+
|
524
|
+
|
525
|
+
|
526
|
+
|
527
|
+
|
559
528
|
|
560
|
-
|
561
|
-
|
529
|
+
|
530
|
+
|
562
531
|
|
563
532
|
|
564
|
-
<li class="md-nav__item">
|
565
|
-
<a href="../../advanced/distributed_state_locking/" title="Distributed State Locking" class="md-nav__link">
|
566
|
-
Distributed State Locking
|
567
|
-
</a>
|
568
|
-
</li>
|
569
533
|
|
534
|
+
|
535
|
+
|
536
|
+
|
537
|
+
|
538
|
+
<li data-nav-id="/rbcli/development/code_of_conduct/" title="Code of Conduct" class="dd-item ">
|
539
|
+
<a href="/rbcli/development/code_of_conduct/">
|
540
|
+
Code of Conduct
|
570
541
|
|
542
|
+
</a>
|
543
|
+
</li>
|
544
|
+
|
545
|
+
|
546
|
+
|
547
|
+
|
548
|
+
|
571
549
|
|
572
|
-
|
573
|
-
|
550
|
+
|
551
|
+
|
574
552
|
|
575
553
|
|
576
|
-
<li class="md-nav__item">
|
577
|
-
<a href="../../advanced/remote_execution/" title="Remote Execution" class="md-nav__link">
|
578
|
-
Remote Execution
|
579
|
-
</a>
|
580
|
-
</li>
|
581
554
|
|
555
|
+
|
556
|
+
|
557
|
+
|
558
|
+
|
559
|
+
<li data-nav-id="/rbcli/development/changelog/" title="Changelog" class="dd-item ">
|
560
|
+
<a href="/rbcli/development/changelog/">
|
561
|
+
Changelog
|
582
562
|
|
563
|
+
</a>
|
564
|
+
</li>
|
565
|
+
|
566
|
+
|
567
|
+
|
568
|
+
|
569
|
+
|
583
570
|
|
571
|
+
|
572
|
+
</ul>
|
573
|
+
|
574
|
+
</li>
|
575
|
+
|
576
|
+
|
577
|
+
|
584
578
|
|
585
579
|
|
586
580
|
|
587
581
|
|
588
|
-
<li class="md-nav__item">
|
589
|
-
<a href="../../advanced/interactive_commands/" title="Interactive Commands" class="md-nav__link">
|
590
|
-
Interactive Commands
|
591
|
-
</a>
|
592
|
-
</li>
|
593
582
|
|
594
|
-
|
595
|
-
</ul>
|
596
|
-
</nav>
|
597
|
-
</li>
|
598
583
|
|
584
|
+
|
585
|
+
|
599
586
|
|
587
|
+
<li data-nav-id="/rbcli/whoami/" title="My Letter To You" class="dd-item
|
588
|
+
|
589
|
+
|
590
|
+
|
591
|
+
">
|
592
|
+
<a href="/rbcli/whoami/">
|
593
|
+
My Letter To You
|
594
|
+
|
595
|
+
</a>
|
600
596
|
|
601
|
-
|
602
|
-
|
597
|
+
|
598
|
+
</li>
|
599
|
+
|
600
|
+
|
603
601
|
|
602
|
+
|
603
|
+
|
604
|
+
</ul>
|
604
605
|
|
605
|
-
<li class="md-nav__item md-nav__item--nested">
|
606
606
|
|
607
|
-
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
|
608
607
|
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
|
613
|
-
<label class="md-nav__title" for="nav-5">
|
614
|
-
Development
|
615
|
-
</label>
|
616
|
-
<ul class="md-nav__list" data-md-scrollfix>
|
617
|
-
|
618
|
-
|
608
|
+
<section id="shortcuts">
|
609
|
+
<h3>More</h3>
|
610
|
+
<ul>
|
619
611
|
|
612
|
+
<li>
|
613
|
+
<a class="padding" href="https://github.com/akhoury6/rbcli"><i class='fab fa-github'></i> Github repo</a>
|
614
|
+
</li>
|
620
615
|
|
616
|
+
<li>
|
617
|
+
<a class="padding" href="https://rubygems.org/gems/rbcli"><i class='far fa-gem'></i> Rubygems</a>
|
618
|
+
</li>
|
621
619
|
|
620
|
+
</ul>
|
621
|
+
</section>
|
622
|
+
|
622
623
|
|
624
|
+
|
625
|
+
<section id="footer">
|
626
|
+
<p>Built with <a href="https://github.com/matcornic/hugo-theme-learn"><i class="fas fa-heart"></i></a> from <a href="https://getgrav.org">Grav</a> and <a href="https://gohugo.io/">Hugo</a></p>
|
623
627
|
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
</a>
|
628
|
-
</li>
|
628
|
+
</section>
|
629
|
+
</div>
|
630
|
+
</nav>
|
629
631
|
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
632
|
|
635
633
|
|
636
|
-
<li class="md-nav__item">
|
637
|
-
<a href="../../development/license/" title="License Info" class="md-nav__link">
|
638
|
-
License Info
|
639
|
-
</a>
|
640
|
-
</li>
|
641
634
|
|
642
|
-
|
635
|
+
<section id="body">
|
636
|
+
<div id="overlay"></div>
|
637
|
+
<div class="padding highlightable">
|
638
|
+
|
639
|
+
<div>
|
640
|
+
<div id="top-bar">
|
641
|
+
|
642
|
+
|
643
|
+
<div id="breadcrumbs" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
|
644
|
+
<span id="sidebar-toggle-span">
|
645
|
+
<a href="#" id="sidebar-toggle" data-sidebar-toggle="">
|
646
|
+
<i class="fas fa-bars"></i>
|
647
|
+
</a>
|
648
|
+
</span>
|
649
|
+
|
650
|
+
<span id="toc-menu"><i class="fas fa-list-alt"></i></span>
|
651
|
+
|
652
|
+
<span class="links">
|
653
|
+
|
654
|
+
|
655
|
+
|
643
656
|
|
644
657
|
|
658
|
+
|
659
|
+
|
645
660
|
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
<a href="../../development/code_of_conduct/" title="Code of Conduct" class="md-nav__link">
|
650
|
-
Code of Conduct
|
651
|
-
</a>
|
652
|
-
</li>
|
653
|
-
|
654
|
-
|
661
|
+
|
662
|
+
|
663
|
+
|
655
664
|
|
656
665
|
|
666
|
+
<a href='/rbcli/'></a> > <a href='/rbcli/tutorial/'>Tutorial</a> > Your First Command
|
657
667
|
|
668
|
+
|
669
|
+
|
670
|
+
|
671
|
+
|
672
|
+
|
673
|
+
|
674
|
+
</span>
|
675
|
+
</div>
|
676
|
+
|
677
|
+
<div class="progress">
|
678
|
+
<div class="wrapper">
|
679
|
+
<nav id="TableOfContents">
|
680
|
+
<ul>
|
681
|
+
<li><a href="#creating-the-command">Creating the Command</a></li>
|
682
|
+
<li><a href="#the-command-declaration">The Command Declaration</a></li>
|
683
|
+
<li><a href="#creating-the-list-command">Creating the “list” Command</a></li>
|
684
|
+
<li><a href="#next-steps">Next Steps</a></li>
|
685
|
+
</ul>
|
686
|
+
</nav>
|
687
|
+
</div>
|
688
|
+
</div>
|
658
689
|
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
690
|
+
|
691
|
+
</div>
|
692
|
+
</div>
|
693
|
+
|
694
|
+
<div id="head-tags">
|
695
|
+
|
696
|
+
</div>
|
697
|
+
|
698
|
+
<div id="body-inner">
|
699
|
+
|
700
|
+
<h1>
|
701
|
+
|
702
|
+
Your First Command
|
703
|
+
</h1>
|
704
|
+
|
665
705
|
|
666
706
|
|
667
|
-
</ul>
|
668
|
-
</nav>
|
669
|
-
</li>
|
670
707
|
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
708
|
|
709
|
+
<h2 id="creating-the-command">Creating the Command</h2>
|
710
|
+
<p>Creating the command is straightforward:</p>
|
711
|
+
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">rbcli command --name<span style="color:#f92672">=</span>list
|
712
|
+
<span style="color:#75715e">#or</span>
|
713
|
+
rbcli command -n list
|
714
|
+
</code></pre></div><p>And there you have it! Now you can try out your command by typing:</p>
|
715
|
+
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">./exe/mytool list
|
716
|
+
</code></pre></div><p>Congrats! You should now see a generic output listing the values of several variables. We’ll get into what they mean in a bit, but first, let’s make the tool’s execution a bit easier.</p>
|
717
|
+
<p>Now that you know your way around a project, its time to create your first command! But before we do, let’s make development just a little bit easier. Go to the base directory of the folder and type:</p>
|
718
|
+
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">alias mytool<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span>pwd<span style="color:#66d9ef">)</span><span style="color:#e6db74">/exe/mytool"</span>
|
719
|
+
</code></pre></div><p>And now you’ll be able to execute your application as if it was already installed as a gem, without worrying about the working path. You can see this in action by running your application again, but without the path:</p>
|
720
|
+
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">mytool list
|
721
|
+
</code></pre></div><p>So, now let’s take a more in-dpeth look at what the command code looks like.</p>
|
722
|
+
<h2 id="the-command-declaration">The Command Declaration</h2>
|
723
|
+
<p>As mentioned in the previous section, you can find your commands listed under the <code>application/commands/</code> directory. Each command will appear as its own unique file with some base code to work from. Let’s take a look at that code a little more in-depth:</p>
|
724
|
+
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ruby" data-lang="ruby"><span style="color:#66d9ef">class</span> <span style="color:#a6e22e">List</span> <span style="color:#f92672"><</span> <span style="color:#66d9ef">Rbcli</span><span style="color:#f92672">::</span><span style="color:#66d9ef">Command</span> <span style="color:#75715e"># Declare a new command by subclassing Rbcli::Command</span>
|
725
|
+
description <span style="color:#e6db74">'TODO: Description goes here'</span> <span style="color:#75715e"># (Required) Short description for the global help</span>
|
726
|
+
usage <span style="color:#e6db74"><<-EOF
|
727
|
+
</span><span style="color:#e6db74"></span><span style="color:#e6db74">TODO</span>: <span style="color:#66d9ef">Usage</span> text goes here
|
728
|
+
<span style="color:#66d9ef">EOF</span> <span style="color:#75715e"># (Required) Long description for the command-specific help</span>
|
729
|
+
parameter <span style="color:#e6db74">:force</span>, <span style="color:#e6db74">'Force testing'</span>, <span style="color:#e6db74">type</span>: <span style="color:#e6db74">:boolean</span>, <span style="color:#e6db74">default</span>: <span style="color:#66d9ef">false</span>, <span style="color:#e6db74">required</span>: <span style="color:#66d9ef">false</span> <span style="color:#75715e"># (Optional, Multiple) Add a command-specific CLI parameter. Can be called multiple times</span>
|
730
|
+
|
731
|
+
config_default <span style="color:#e6db74">:myopt2</span>, <span style="color:#e6db74">description</span>: <span style="color:#e6db74">'My Option #2'</span>, <span style="color:#e6db74">default</span>: <span style="color:#e6db74">'Default Value Here'</span> <span style="color:#75715e"># (Optional, Multiple) Specify an individual configuration parameter and set a default value. These will also be included in generated user config.</span>
|
732
|
+
<span style="color:#75715e"># Alternatively, you can simply create a yaml file in the `default_user_configs` directory in your project that specifies the default values of all options</span>
|
733
|
+
|
734
|
+
action <span style="color:#66d9ef">do</span> <span style="color:#f92672">|</span>params, args, global_opts, config<span style="color:#f92672">|</span> <span style="color:#75715e"># (Required) Block to execute if the command is called.</span>
|
735
|
+
<span style="color:#66d9ef">Rbcli</span><span style="color:#f92672">::</span>log<span style="color:#f92672">.</span>info { <span style="color:#e6db74">'These logs can go to STDERR, STDOUT, or a file'</span> } <span style="color:#75715e"># Example log. Interface is identical to Ruby's logger</span>
|
736
|
+
puts <span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">Args:</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">#{</span>args<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> <span style="color:#75715e"># Arguments that came after the command on the CLI (i.e.: `mytool test bar baz` will yield args=['bar', 'baz'])</span>
|
737
|
+
puts <span style="color:#e6db74">"Params:</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">#{</span>params<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> <span style="color:#75715e"># Parameters, as described through the option statements above</span>
|
738
|
+
puts <span style="color:#e6db74">"Global opts:</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">#{</span>global_opts<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> <span style="color:#75715e"># Global Parameters, as descirbed in the Configurate section</span>
|
739
|
+
puts <span style="color:#e6db74">"Config:</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">#{</span>config<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> <span style="color:#75715e"># Config file values</span>
|
740
|
+
puts <span style="color:#e6db74">"LocalState:</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">#{</span><span style="color:#66d9ef">Rbcli</span><span style="color:#f92672">.</span>local_state<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> <span style="color:#75715e"># Local persistent state storage (when available) -- if unsure use Rbcli.local_state.nil?</span>
|
741
|
+
puts <span style="color:#e6db74">"RemoteState:</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">#{</span><span style="color:#66d9ef">Rbcli</span><span style="color:#f92672">.</span>remote_state<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> <span style="color:#75715e"># Remote persistent state storage (when available) -- if unsure use Rbcli.remote_state.nil?</span>
|
742
|
+
puts <span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">Done!!!"</span>
|
743
|
+
<span style="color:#66d9ef">end</span>
|
744
|
+
<span style="color:#66d9ef">end</span>
|
745
|
+
</code></pre></div><p>Commands are declared to RBCli simply by subclassing them from <code>Rbcli::Command</code> as shown above. Then, you have a list of declarations that tell RBCli information about it. They are:</p>
|
746
|
+
<ul>
|
747
|
+
<li><code>description</code>
|
748
|
+
<ul>
|
749
|
+
<li>A short description of the command, which will appear in the top-level help (when the user runs <code>mytool -h</code>).</li>
|
750
|
+
</ul>
|
751
|
+
</li>
|
752
|
+
<li><code>usage</code>
|
753
|
+
<ul>
|
754
|
+
<li>A description of how the command is meant to be used. This description can be as long as you want, and can be as in-depth as you’d like. It will show up as a long, multi-line description when the user runs the command-sepcific help (<code>mytool list -h</code>).</li>
|
755
|
+
</ul>
|
756
|
+
</li>
|
757
|
+
<li><code>parameter</code>
|
758
|
+
<ul>
|
759
|
+
<li>Command-line tags that the user can enter that are specific to only this command. We will get into these in the next section on <a href="/rbcli/tutorial/40-options_parameters_and_arguments/">Options, Parameters, and Arguments</a></li>
|
760
|
+
</ul>
|
761
|
+
</li>
|
762
|
+
<li><code>config_default</code>
|
763
|
+
<ul>
|
764
|
+
<li>This sets a single item in the config file that will be made available to the user. More information can be found in the documentation on <a href="/rbcli/advanced/user_config_files/">User Config Files</a></li>
|
765
|
+
</ul>
|
766
|
+
</li>
|
767
|
+
<li><code>action</code>
|
768
|
+
<ul>
|
769
|
+
<li>This loads the block of code that will run when the command is called. It brings in all of the CLI and user config data as variables. We will also get into these in the next section <a href="/rbcli/tutorial/40-options_parameters_and_arguments/">Options, Parameters, and Arguments</a></li>
|
770
|
+
</ul>
|
771
|
+
</li>
|
772
|
+
</ul>
|
773
|
+
<p>There is an additional declaration not shown here, <code>extern</code>. You can find more information on it in the section on <a href="/rbcli/advanced/command_types/">Advanced Command Types</a></p>
|
774
|
+
<h2 id="creating-the-list-command">Creating the “list” Command</h2>
|
775
|
+
<p>Now we’re going to modify this command to list the contents of the current directory to the terminal. So let’s change the code in that file to:</p>
|
776
|
+
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ruby" data-lang="ruby"><span style="color:#66d9ef">class</span> <span style="color:#a6e22e">List</span> <span style="color:#f92672"><</span> <span style="color:#66d9ef">Rbcli</span><span style="color:#f92672">::</span><span style="color:#66d9ef">Command</span>
|
777
|
+
description <span style="color:#e6db74">%q{List files in current directory}</span>
|
778
|
+
usage <span style="color:#e6db74"><<-EOF
|
779
|
+
</span><span style="color:#e6db74"></span><span style="color:#66d9ef">Ever</span> wanted to see your files?
|
780
|
+
<span style="color:#66d9ef">Now</span> you can!
|
781
|
+
<span style="color:#66d9ef">EOF</span>
|
782
|
+
|
783
|
+
action <span style="color:#66d9ef">do</span> <span style="color:#f92672">|</span>params, args, global_opts, config<span style="color:#f92672">|</span>
|
784
|
+
filelist <span style="color:#f92672">=</span> <span style="color:#f92672">[]</span>
|
785
|
+
|
786
|
+
<span style="color:#75715e"># We store a list of the files in an array, including dotfiles if specified</span>
|
787
|
+
<span style="color:#66d9ef">Dir</span><span style="color:#f92672">.</span>glob <span style="color:#e6db74">"./*"</span> <span style="color:#66d9ef">do</span> <span style="color:#f92672">|</span>filename<span style="color:#f92672">|</span>
|
788
|
+
outname <span style="color:#f92672">=</span> filename<span style="color:#f92672">.</span>split(<span style="color:#e6db74">'/'</span>)<span style="color:#f92672">[</span><span style="color:#ae81ff">1</span><span style="color:#f92672">]</span>
|
789
|
+
outname <span style="color:#f92672">+=</span> <span style="color:#e6db74">'/'</span> <span style="color:#66d9ef">if</span> <span style="color:#66d9ef">File</span><span style="color:#f92672">.</span>directory? filename
|
790
|
+
filelist<span style="color:#f92672">.</span>append outname
|
791
|
+
<span style="color:#66d9ef">end</span>
|
792
|
+
|
793
|
+
<span style="color:#75715e"># Apply color</span>
|
794
|
+
filelist<span style="color:#f92672">.</span>map! <span style="color:#66d9ef">do</span> <span style="color:#f92672">|</span>filename<span style="color:#f92672">|</span>
|
795
|
+
<span style="color:#66d9ef">if</span> <span style="color:#66d9ef">File</span><span style="color:#f92672">.</span>directory? filename
|
796
|
+
filename<span style="color:#f92672">.</span>light_blue
|
797
|
+
<span style="color:#66d9ef">elsif</span> <span style="color:#66d9ef">File</span><span style="color:#f92672">.</span>executable? filename
|
798
|
+
filename<span style="color:#f92672">.</span>light_green
|
799
|
+
<span style="color:#66d9ef">else</span>
|
800
|
+
filename
|
801
|
+
<span style="color:#66d9ef">end</span>
|
802
|
+
<span style="color:#66d9ef">end</span> <span style="color:#66d9ef">if</span> global_opts<span style="color:#f92672">[</span><span style="color:#e6db74">:color</span><span style="color:#f92672">]</span>
|
803
|
+
|
804
|
+
puts filelist
|
805
|
+
<span style="color:#66d9ef">end</span>
|
806
|
+
<span style="color:#66d9ef">end</span>
|
807
|
+
</code></pre></div><p>Go ahead and test it out! The output doesn’t show much obviously, just a list of names and nothing else. Don’t worry though, we’ll fix that in the next secion.</p>
|
808
|
+
<h2 id="next-steps">Next Steps</h2>
|
809
|
+
<p>Next we’re going to take a look at options, parameters, and arguments, and we’ll clean up our list command by using them. If you’d like to learn more about the additional command types in RBCli before continuing, see the <a href="/rbcli/advanced/command_types/">Advanced Command Types</a> documentation.</p>
|
676
810
|
|
677
|
-
<li class="md-nav__item">
|
678
|
-
<a href="../../whoami/" title="whoami" class="md-nav__link">
|
679
|
-
whoami
|
680
|
-
</a>
|
681
|
-
</li>
|
682
811
|
|
683
|
-
|
684
|
-
|
685
|
-
</
|
686
|
-
|
687
|
-
|
688
|
-
|
812
|
+
<footer class="footline">
|
813
|
+
|
814
|
+
</footer>
|
815
|
+
|
816
|
+
|
817
|
+
</div>
|
818
|
+
|
819
|
+
|
820
|
+
</div>
|
821
|
+
|
822
|
+
<div id="navigation">
|
823
|
+
|
824
|
+
|
825
|
+
|
826
|
+
|
689
827
|
|
690
828
|
|
691
|
-
|
692
|
-
<div class="md-sidebar__scrollwrap">
|
693
|
-
<div class="md-sidebar__inner">
|
829
|
+
|
694
830
|
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
</li>
|
710
|
-
|
711
|
-
<li class="md-nav__item">
|
712
|
-
<a href="#the-command-declaration" title="The Command Declaration" class="md-nav__link">
|
713
|
-
The Command Declaration
|
714
|
-
</a>
|
715
|
-
|
716
|
-
</li>
|
717
|
-
|
718
|
-
<li class="md-nav__item">
|
719
|
-
<a href="#creating-the-list-command" title="Creating the "list" Command" class="md-nav__link">
|
720
|
-
Creating the "list" Command
|
721
|
-
</a>
|
722
|
-
|
723
|
-
</li>
|
724
|
-
|
725
|
-
<li class="md-nav__item">
|
726
|
-
<a href="#next-steps" title="Next Steps" class="md-nav__link">
|
727
|
-
Next Steps
|
728
|
-
</a>
|
729
|
-
|
730
|
-
</li>
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
</ul>
|
737
|
-
|
738
|
-
</nav>
|
739
|
-
</div>
|
740
|
-
</div>
|
741
|
-
</div>
|
831
|
+
|
832
|
+
|
833
|
+
|
834
|
+
|
835
|
+
|
836
|
+
|
837
|
+
|
838
|
+
|
839
|
+
|
840
|
+
|
841
|
+
|
842
|
+
|
843
|
+
|
742
844
|
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
845
|
+
|
846
|
+
|
847
|
+
|
848
|
+
|
849
|
+
|
747
850
|
|
748
851
|
|
749
|
-
<h1 id="your-first-command">Your First Command</h1>
|
750
|
-
<h2 id="creating-the-command">Creating the Command</h2>
|
751
|
-
<p>Creating the command is straightforward:</p>
|
752
|
-
<pre><code class="bash">rbcli command --name=list
|
753
|
-
#or
|
754
|
-
rbcli command -n list
|
755
|
-
</code></pre>
|
756
852
|
|
757
|
-
|
758
|
-
|
759
|
-
|
853
|
+
|
854
|
+
|
855
|
+
|
760
856
|
|
761
|
-
|
762
|
-
|
763
|
-
|
764
|
-
|
857
|
+
|
858
|
+
|
859
|
+
|
860
|
+
|
861
|
+
|
862
|
+
|
863
|
+
|
864
|
+
|
865
|
+
|
866
|
+
|
867
|
+
|
868
|
+
|
765
869
|
|
766
|
-
|
767
|
-
|
768
|
-
|
870
|
+
|
871
|
+
|
872
|
+
|
769
873
|
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
description 'TODO: Description goes here' # (Required) Short description for the global help
|
775
|
-
usage <<-EOF
|
776
|
-
TODO: Usage text goes here
|
777
|
-
EOF # (Required) Long description for the command-specific help
|
778
|
-
parameter :force, 'Force testing', type: :boolean, default: false, required: false # (Optional, Multiple) Add a command-specific CLI parameter. Can be called multiple times
|
779
|
-
|
780
|
-
config_default :myopt2, description: 'My Option #2', default: 'Default Value Here' # (Optional, Multiple) Specify an individual configuration parameter and set a default value. These will also be included in generated user config.
|
781
|
-
# Alternatively, you can simply create a yaml file in the `default_user_configs` directory in your project that specifies the default values of all options
|
782
|
-
|
783
|
-
action do |params, args, global_opts, config| # (Required) Block to execute if the command is called.
|
784
|
-
Rbcli::log.info { 'These logs can go to STDERR, STDOUT, or a file' } # Example log. Interface is identical to Ruby's logger
|
785
|
-
puts "\nArgs:\n#{args}" # Arguments that came after the command on the CLI (i.e.: `mytool test bar baz` will yield args=['bar', 'baz'])
|
786
|
-
puts "Params:\n#{params}" # Parameters, as described through the option statements above
|
787
|
-
puts "Global opts:\n#{global_opts}" # Global Parameters, as descirbed in the Configurate section
|
788
|
-
puts "Config:\n#{config}" # Config file values
|
789
|
-
puts "LocalState:\n#{Rbcli.local_state}" # Local persistent state storage (when available) -- if unsure use Rbcli.local_state.nil?
|
790
|
-
puts "RemoteState:\n#{Rbcli.remote_state}" # Remote persistent state storage (when available) -- if unsure use Rbcli.remote_state.nil?
|
791
|
-
puts "\nDone!!!"
|
792
|
-
end
|
793
|
-
end
|
794
|
-
</code></pre>
|
795
|
-
|
796
|
-
<p>Commands are declared to RBCli simply by subclassing them from <code>Rbcli::Command</code> as shown above. Then, you have a list of declarations that tell RBCli information about it. They are:</p>
|
797
|
-
<ul>
|
798
|
-
<li><code>description</code><ul>
|
799
|
-
<li>A short description of the command, which will appear in the top-level help (when the user runs <code>mytool -h</code>).</li>
|
800
|
-
</ul>
|
801
|
-
</li>
|
802
|
-
<li><code>usage</code><ul>
|
803
|
-
<li>A description of how the command is meant to be used. This description can be as long as you want, and can be as in-depth as you'd like. It will show up as a long, multi-line description when the user runs the command-sepcific help (<code>mytool list -h</code>).</li>
|
804
|
-
</ul>
|
805
|
-
</li>
|
806
|
-
<li><code>parameter</code><ul>
|
807
|
-
<li>Command-line tags that the user can enter that are specific to only this command. We will get into these in the next section on <a href="../40-options_parameters_and_arguments/">Options, Parameters, and Arguments</a></li>
|
808
|
-
</ul>
|
809
|
-
</li>
|
810
|
-
<li><code>config_default</code><ul>
|
811
|
-
<li>This sets a single item in the config file that will be made available to the user. More information can be found in the documentation on <a href="../../advanced/user_config_files/">User Config Files</a></li>
|
812
|
-
</ul>
|
813
|
-
</li>
|
814
|
-
<li><code>action</code><ul>
|
815
|
-
<li>This loads the block of code that will run when the command is called. It brings in all of the CLI and user config data as variables. We will also get into these in the next section <a href="../40-options_parameters_and_arguments/">Options, Parameters, and Arguments</a></li>
|
816
|
-
</ul>
|
817
|
-
</li>
|
818
|
-
</ul>
|
819
|
-
<p>There is an additional declaration not shown here, <code>extern</code>. You can find more information on it in the section on <a href="../../advanced/command_types/">Advanced Command Types</a></p>
|
820
|
-
<h2 id="creating-the-list-command">Creating the "list" Command</h2>
|
821
|
-
<p>Now we're going to modify this command to list the contents of the current directory to the terminal. So let's change the code in that file to:</p>
|
822
|
-
<pre><code class="ruby">class List < Rbcli::Command
|
823
|
-
description %q{List files in current directory}
|
824
|
-
usage <<-EOF
|
825
|
-
Ever wanted to see your files?
|
826
|
-
Now you can!
|
827
|
-
EOF
|
828
|
-
|
829
|
-
action do |params, args, global_opts, config|
|
830
|
-
filelist = []
|
831
|
-
|
832
|
-
# We store a list of the files in an array, including dotfiles if specified
|
833
|
-
Dir.glob "./*" do |filename|
|
834
|
-
outname = filename.split('/')[1]
|
835
|
-
outname += '/' if File.directory? filename
|
836
|
-
filelist.append outname
|
837
|
-
end
|
838
|
-
|
839
|
-
# Apply color
|
840
|
-
filelist.map! do |filename|
|
841
|
-
if File.directory? filename
|
842
|
-
filename.light_blue
|
843
|
-
elsif File.executable? filename
|
844
|
-
filename.light_green
|
845
|
-
else
|
846
|
-
filename
|
847
|
-
end
|
848
|
-
end if global_opts[:color]
|
849
|
-
|
850
|
-
puts filelist
|
851
|
-
end
|
852
|
-
end
|
853
|
-
</code></pre>
|
854
|
-
|
855
|
-
<p>Go ahead and test it out! The output doesn't show much obviously, just a list of names and nothing else. Don't worry though, we'll fix that in the next secion.</p>
|
856
|
-
<h2 id="next-steps">Next Steps</h2>
|
857
|
-
<p>Next we're going to take a look at options, parameters, and arguments, and we'll clean up our list command by using them. If you'd like to learn more about the additional command types in RBCli before continuing, see the <a href="../../advanced/command_types/">Advanced Command Types</a> documentation.</p>
|
874
|
+
|
875
|
+
|
876
|
+
|
877
|
+
|
858
878
|
|
859
|
-
|
879
|
+
|
880
|
+
|
881
|
+
|
882
|
+
|
860
883
|
|
861
|
-
|
862
|
-
|
863
884
|
|
864
885
|
|
886
|
+
|
887
|
+
|
888
|
+
|
865
889
|
|
866
|
-
|
867
|
-
|
868
|
-
</div>
|
869
|
-
</div>
|
870
|
-
</main>
|
871
|
-
|
890
|
+
|
891
|
+
|
872
892
|
|
873
|
-
|
874
|
-
|
875
|
-
|
876
|
-
|
893
|
+
|
894
|
+
|
895
|
+
|
896
|
+
|
897
|
+
|
898
|
+
|
899
|
+
|
900
|
+
|
901
|
+
|
902
|
+
|
903
|
+
|
904
|
+
|
905
|
+
|
906
|
+
|
907
|
+
|
877
908
|
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
909
|
+
|
910
|
+
|
911
|
+
|
912
|
+
|
913
|
+
|
914
|
+
|
915
|
+
|
916
|
+
|
917
|
+
|
918
|
+
|
919
|
+
|
920
|
+
|
921
|
+
|
922
|
+
|
923
|
+
|
924
|
+
|
891
925
|
|
926
|
+
|
927
|
+
|
928
|
+
|
929
|
+
|
930
|
+
|
931
|
+
|
932
|
+
|
933
|
+
|
934
|
+
|
935
|
+
|
936
|
+
|
937
|
+
|
938
|
+
|
939
|
+
|
940
|
+
|
941
|
+
|
942
|
+
|
943
|
+
|
892
944
|
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
|
945
|
+
|
946
|
+
|
947
|
+
|
948
|
+
|
949
|
+
|
950
|
+
|
951
|
+
|
952
|
+
|
953
|
+
|
954
|
+
|
955
|
+
|
956
|
+
|
957
|
+
|
958
|
+
|
959
|
+
|
906
960
|
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
<div class="md-footer-meta md-typeset">
|
911
|
-
<div class="md-footer-meta__inner md-grid">
|
912
|
-
<div class="md-footer-copyright">
|
961
|
+
|
962
|
+
|
913
963
|
|
914
|
-
|
915
|
-
|
916
|
-
|
964
|
+
|
965
|
+
|
966
|
+
|
967
|
+
|
968
|
+
|
969
|
+
|
970
|
+
|
971
|
+
|
972
|
+
|
973
|
+
|
974
|
+
|
975
|
+
|
976
|
+
|
977
|
+
|
978
|
+
|
979
|
+
|
980
|
+
|
981
|
+
|
982
|
+
|
983
|
+
|
984
|
+
|
985
|
+
|
986
|
+
|
987
|
+
|
988
|
+
|
989
|
+
|
990
|
+
|
991
|
+
|
917
992
|
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
993
|
+
|
994
|
+
|
995
|
+
|
996
|
+
|
997
|
+
|
998
|
+
|
999
|
+
|
1000
|
+
|
1001
|
+
|
1002
|
+
|
1003
|
+
|
1004
|
+
|
1005
|
+
|
1006
|
+
|
1007
|
+
|
925
1008
|
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
|
1009
|
+
|
1010
|
+
|
1011
|
+
|
1012
|
+
|
1013
|
+
|
1014
|
+
|
1015
|
+
|
1016
|
+
|
1017
|
+
|
1018
|
+
|
1019
|
+
|
1020
|
+
|
1021
|
+
|
1022
|
+
|
1023
|
+
|
1024
|
+
|
1025
|
+
|
1026
|
+
|
1027
|
+
|
1028
|
+
|
1029
|
+
|
1030
|
+
|
1031
|
+
|
1032
|
+
|
1033
|
+
|
1034
|
+
|
1035
|
+
|
1036
|
+
|
1037
|
+
|
1038
|
+
|
1039
|
+
|
1040
|
+
|
1041
|
+
|
1042
|
+
|
1043
|
+
|
1044
|
+
|
1045
|
+
|
1046
|
+
|
1047
|
+
|
1048
|
+
|
1049
|
+
|
1050
|
+
|
1051
|
+
|
1052
|
+
|
1053
|
+
|
1054
|
+
|
1055
|
+
|
1056
|
+
|
1057
|
+
|
1058
|
+
|
1059
|
+
|
1060
|
+
|
1061
|
+
|
1062
|
+
|
1063
|
+
|
1064
|
+
|
1065
|
+
|
1066
|
+
|
1067
|
+
|
1068
|
+
|
1069
|
+
|
1070
|
+
|
1071
|
+
|
1072
|
+
|
1073
|
+
|
1074
|
+
|
1075
|
+
|
1076
|
+
|
1077
|
+
|
1078
|
+
|
1079
|
+
|
1080
|
+
|
1081
|
+
|
1082
|
+
|
1083
|
+
|
1084
|
+
|
1085
|
+
|
1086
|
+
|
1087
|
+
|
1088
|
+
|
1089
|
+
|
1090
|
+
|
1091
|
+
|
1092
|
+
|
1093
|
+
|
1094
|
+
|
1095
|
+
|
1096
|
+
|
1097
|
+
|
1098
|
+
|
1099
|
+
|
1100
|
+
|
1101
|
+
|
1102
|
+
|
1103
|
+
|
1104
|
+
|
1105
|
+
|
1106
|
+
|
1107
|
+
|
1108
|
+
|
1109
|
+
|
1110
|
+
|
1111
|
+
|
1112
|
+
|
1113
|
+
|
1114
|
+
|
1115
|
+
|
1116
|
+
|
1117
|
+
|
1118
|
+
|
1119
|
+
|
1120
|
+
|
1121
|
+
|
1122
|
+
|
1123
|
+
|
1124
|
+
|
1125
|
+
|
1126
|
+
|
1127
|
+
|
1128
|
+
|
1129
|
+
|
1130
|
+
|
1131
|
+
|
1132
|
+
|
1133
|
+
|
1134
|
+
|
1135
|
+
|
1136
|
+
|
1137
|
+
|
1138
|
+
|
1139
|
+
|
1140
|
+
|
1141
|
+
|
1142
|
+
|
1143
|
+
|
1144
|
+
|
1145
|
+
|
1146
|
+
|
1147
|
+
|
1148
|
+
|
1149
|
+
|
1150
|
+
|
1151
|
+
|
1152
|
+
|
1153
|
+
|
1154
|
+
|
1155
|
+
|
1156
|
+
|
1157
|
+
|
1158
|
+
|
1159
|
+
|
1160
|
+
|
1161
|
+
|
1162
|
+
|
1163
|
+
|
1164
|
+
|
1165
|
+
|
1166
|
+
|
1167
|
+
|
1168
|
+
|
1169
|
+
|
1170
|
+
|
1171
|
+
|
1172
|
+
|
1173
|
+
|
1174
|
+
|
1175
|
+
|
1176
|
+
|
1177
|
+
|
1178
|
+
|
1179
|
+
|
1180
|
+
|
1181
|
+
|
1182
|
+
|
1183
|
+
|
1184
|
+
|
1185
|
+
|
1186
|
+
|
1187
|
+
|
1188
|
+
|
1189
|
+
|
1190
|
+
|
1191
|
+
|
1192
|
+
|
1193
|
+
|
1194
|
+
|
1195
|
+
|
1196
|
+
|
1197
|
+
|
1198
|
+
|
1199
|
+
|
1200
|
+
|
1201
|
+
|
1202
|
+
|
1203
|
+
|
1204
|
+
|
1205
|
+
|
1206
|
+
|
1207
|
+
|
1208
|
+
|
1209
|
+
|
1210
|
+
|
1211
|
+
|
1212
|
+
|
1213
|
+
|
1214
|
+
|
1215
|
+
|
1216
|
+
|
1217
|
+
|
1218
|
+
|
1219
|
+
|
1220
|
+
|
1221
|
+
|
1222
|
+
|
1223
|
+
|
1224
|
+
|
1225
|
+
|
1226
|
+
|
1227
|
+
|
1228
|
+
|
1229
|
+
|
1230
|
+
<a class="nav nav-prev" href="/rbcli/tutorial/20-project_layout/" title="The Project Layout"> <i class="fa fa-chevron-left"></i></a>
|
1231
|
+
|
1232
|
+
|
1233
|
+
<a class="nav nav-next" href="/rbcli/tutorial/40-options_parameters_and_arguments/" title="Options, Parameters, and Arguments" style="margin-right: 0px;"><i class="fa fa-chevron-right"></i></a>
|
1234
|
+
|
1235
|
+
|
931
1236
|
</div>
|
1237
|
+
|
1238
|
+
</section>
|
932
1239
|
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
|
1240
|
+
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
|
1241
|
+
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
|
1242
|
+
</div>
|
1243
|
+
<script src="/rbcli/js/clipboard.min.js?1634703589"></script>
|
1244
|
+
<script src="/rbcli/js/perfect-scrollbar.min.js?1634703589"></script>
|
1245
|
+
<script src="/rbcli/js/perfect-scrollbar.jquery.min.js?1634703589"></script>
|
1246
|
+
<script src="/rbcli/js/jquery.sticky.js?1634703589"></script>
|
1247
|
+
<script src="/rbcli/js/featherlight.min.js?1634703589"></script>
|
1248
|
+
<script src="/rbcli/js/highlight.pack.js?1634703589"></script>
|
1249
|
+
<script>hljs.initHighlightingOnLoad();</script>
|
1250
|
+
<script src="/rbcli/js/modernizr.custom-3.6.0.js?1634703589"></script>
|
1251
|
+
<script src="/rbcli/js/learn.js?1634703589"></script>
|
1252
|
+
<script src="/rbcli/js/hugo-learn.js?1634703589"></script>
|
1253
|
+
|
1254
|
+
<link href="/rbcli/mermaid/mermaid.css?1634703589" rel="stylesheet" />
|
1255
|
+
<script src="/rbcli/mermaid/mermaid.js?1634703589"></script>
|
1256
|
+
<script>
|
1257
|
+
mermaid.initialize({ startOnLoad: true });
|
1258
|
+
</script>
|
940
1259
|
|
1260
|
+
|
941
1261
|
</body>
|
942
|
-
</html>
|
1262
|
+
</html>
|
1263
|
+
|