|
| 1 | +--- |
| 2 | +title: "Посібник: Створення втулків CLI" |
| 3 | +sidebar_label: Створення втулків CLI |
| 4 | +--- |
| 5 | + |
| 6 | +import GetVersion from "@site/src/components/GetVersion"; |
| 7 | +import CodeBlock from "@theme/CodeBlock"; |
| 8 | + |
| 9 | +Створіть команду `helm system-info`, яка виводить інформацію про систему. |
| 10 | + |
| 11 | +## Subprocess Runtime |
| 12 | + |
| 13 | +Почнемо з створення втулка CLI з середовищем виконання Subprocess. |
| 14 | + |
| 15 | +### Передумови {#prerequisites} |
| 16 | + |
| 17 | +1. Встановіть останню версію Helm 4: **<GetVersion majorVersion="4" label={false} link={true} />** |
| 18 | +2. У терміналі створіть аліас `helm` для завантаженої версії. Команда `helm version --short` повинна показати правильну версію Helm у цьому терміналі. |
| 19 | + |
| 20 | +### 1. Створіть теку для втулка {#1-create-plugin-directory} |
| 21 | + |
| 22 | +Ви можете створити її в будь-якому місці вашої файлової системи. Наприклад: |
| 23 | + |
| 24 | +```bash |
| 25 | +mkdir -p $HOME/code/helm/plugins/system-info |
| 26 | +cd $HOME/code/helm/plugins/system-info |
| 27 | +``` |
| 28 | + |
| 29 | +### 2. Створіть маніфест втулка {#2-create-plugin-manifest} |
| 30 | + |
| 31 | +```yaml title="plugin.yaml" showLineNumbers |
| 32 | +apiVersion: v1 |
| 33 | +type: cli/v1 |
| 34 | +name: "system-info" |
| 35 | +version: "0.1.0" |
| 36 | +runtime: subprocess |
| 37 | +config: |
| 38 | + usage: system-info |
| 39 | + shortHelp: Показує системну інформацію та інформацію Helm |
| 40 | + longHelp: Показує інформацію про ОС, версію Helm та деталі середовища |
| 41 | +runtimeConfig: |
| 42 | + platformCommand: |
| 43 | + - command: ${HELM_PLUGIN_DIR}/system-info.sh |
| 44 | +``` |
| 45 | +
|
| 46 | +### 3. Створіть скрипт {#3-create-script} |
| 47 | +
|
| 48 | +```bash title="system-info.sh" showLineNumbers |
| 49 | +#!/bin/bash |
| 50 | + |
| 51 | +echo "=== System Information ===" |
| 52 | +echo "OS: $(uname -s)" |
| 53 | +echo "Architecture: $(uname -m)" |
| 54 | + |
| 55 | +echo "" |
| 56 | +echo "=== Helm Information ===" |
| 57 | +echo "Plugin Dir: $HELM_PLUGIN_DIR" |
| 58 | +echo "Arguments: $*" |
| 59 | + |
| 60 | +echo "" |
| 61 | +echo "System info complete!" |
| 62 | +``` |
| 63 | + |
| 64 | +Зробіть його виконуваним: |
| 65 | + |
| 66 | +```bash |
| 67 | +chmod +x system-info.sh |
| 68 | +``` |
| 69 | + |
| 70 | +### 4. Встановлення в режимі розробки та тестування {#4-install-in-dev-mode-and-test} |
| 71 | + |
| 72 | +Встановлення втулка з вашої файлової системи відбувається в локальному режимі розробки. Це дозволяє обійти перевірку або підтвердження походження: |
| 73 | + |
| 74 | +```bash |
| 75 | +% helm plugin install $HOME/code/helm/plugins/system-info |
| 76 | +Installing plugin from local directory (development mode) |
| 77 | +Installed plugin: system-info |
| 78 | +``` |
| 79 | + |
| 80 | +Встановлення в локальному режимі розробки створює символічне посилання з вашого теки джерел до теки втулків, тому ви можете продовжувати розробку в бажаному місці. Ви можете побачити символічне посилання, переглянувши розташування теки за допомогою внутрішньої змінної середовища HELM_PLUGINS: |
| 81 | + |
| 82 | +```bash |
| 83 | +% ls -lah $(helm env HELM_PLUGINS) |
| 84 | +total 0 |
| 85 | +drwxr-xr-x@ 3 r6by staff 96B Nov 10 02:18 . |
| 86 | +drwxr-xr-x@ 3 r6by staff 96B Jan 21 2025 .. |
| 87 | +lrwxr-xr-x 1 r6by staff 41B Nov 10 02:18 system-info -> /Users/r6by/code/helm/plugins/system-info |
| 88 | +``` |
| 89 | + |
| 90 | +Ви можете переглянути детальну інформацію про втулок у списку встановлених втулків `helm plugin list`: |
| 91 | + |
| 92 | +```bash |
| 93 | +% helm plugin list |
| 94 | +NAME VERSION TYPE APIVERSION PROVENANCE SOURCE |
| 95 | +system-info 0.1.0 cli/v1 v1 local dev unknown |
| 96 | +``` |
| 97 | + |
| 98 | +Тепер ви також можете побачити свій втулок у списку доступних команд за допомогою команди `helm help` і переглянути власне повідомлення довідки, яке ви визначили у файлі `plugin.yaml`: |
| 99 | + |
| 100 | +```bash |
| 101 | +% helm help | grep system-info |
| 102 | + system-info Показує системну інформацію та інформацію Helm |
| 103 | + |
| 104 | +% helm help system-info |
| 105 | +Показує інформацію про ОС, версію Helm та деталі середовища |
| 106 | + |
| 107 | +Usage: |
| 108 | + helm system-info [flags] |
| 109 | +``` |
| 110 | + |
| 111 | +Спробуємо запустити команду CLI: |
| 112 | + |
| 113 | +```bash |
| 114 | +% helm system-info |
| 115 | +=== System Information === |
| 116 | +OS: Darwin |
| 117 | +Architecture: arm64 |
| 118 | + |
| 119 | +=== Helm Information === |
| 120 | +Plugin Dir: /Users/r6by/Library/helm/plugins/system-info |
| 121 | +Arguments: |
| 122 | + |
| 123 | +System info complete! |
| 124 | +``` |
| 125 | + |
| 126 | +Що ви створили: втулок CLI з використанням середовища виконання Subprocess! |
| 127 | + |
| 128 | +Тепер давайте зробимо це ще раз, але цього разу з використанням середовища виконання Wasm… |
| 129 | + |
| 130 | +## Wasm Runtime |
| 131 | + |
| 132 | +### Передумови {#prerequisites-1} |
| 133 | + |
| 134 | +- Передумови з [Subprocess Runtime](#subprocess-runtime) |
| 135 | +- Встановлений Go 1.25 |
| 136 | + |
| 137 | +:::warning |
| 138 | +To-do: додати цей розділ |
| 139 | +::: |
0 commit comments