Bash yaml parser
yb - bash парсер YAML
yb надає чисте Bash рішення для парсингу YAML.
Використання
Приклади
З репозиторію ви можете швидко спробувати так:
Створення ключів:
додати вбудоване значення:
змінити його:
додати значення списку:
додати ASCII всередині ключа каналу:
Маніпулювати YAML як змінною bash:
Додати його до файлу:
Видалити одне значення:
або видалити все:
Встановлення
З репозиторію
yb можна використовувати безпосередньо з папки репозиторію або скопіювати та використовувати як окремий файл у проекті.
З URL-адреси
Ви можете використовувати цю команду для безпосереднього завантаження скрипта yb, де це необхідно:
Якщо ви хочете, щоб yb був доступний для всієї системи, виконайте цю команду з папки репозиторію:
Однорядковий код
Ви можете використовувати цю команду для завантаження yb у поточну папку одним рядком:
Ви можете використати цю команду для встановлення yb у вашу систему одним рядком:
There may be pirates
У свій форк я додав можливість завантаження парсеру у форматі deb пакету який можна завантажити за цим посиланням
Параметри
Параметри yb поділяються на 3 типи:
action: параметри дії виконуються з файлом і не сумісні один з одним. Вони сумісні зinput, але не зformat.input: параметри введення є параметрами, що встановлюються користувачем, і сумісні один з одним. Вони сумісні як зaction, так і зformat.input: параметри форматування виводять вивід різними способами. Вони сумісні один з одним, з типомinput, але не з типомaction.
| Опція | Ім’я | Тип | Опис | Приклад | Примітки |
|---|---|---|---|---|---|
-a | add | action | Додає ключ(и), значення(я) або обидва. | yb -f "file.yaml" -a -k "key" -v "value" | |
-c | change | action | Змінює значення(я). | yb -f "file.yaml" -c -k "key" -v "new_value" | |
-q | query | action | Виводить true або false, якщо ключ(и), значення(я) або обидва присутні чи ні. | yb -f "file.yaml" -q -k "key" | Для отримання значення каналу -v 'значення каналу' рекомендується використовувати одинарні лапки. |
-r | remove | action | Видаляє ключ(и), значення(я) або обидва. | yb -f "файл.yaml" -r -k "ключ" -v "значення" | Для видалення значення каналу -v 'значення каналу' рекомендується використовувати одинарні лапки. |
-f | file | input | шлях до файлу YAML. | yb -f "файл.yaml" | Файл можна представити без опції -f, як опцію $1. -f та -c несумісні один з одним. |
-o | object | input | об’єкт YAML. | yb -o "${YAML_object}" | Об’єкт YAML можна використовувати з усіма діями. -f та -o сумісні між собою, лише під час додавання об’єкта до файлу. |
-O | object value | input | значення об’єкта YAML. | yb -f "file.yaml" -O "${YAML_object}" | Об’єкт YAML можна використовувати з дією -a. |
-k | key | input | Шлях вибору ключів. | yb -f "file.yaml" -k "ключ" | Підтримує ключі у форматі:key, key.childkey, - list-key, pipe-key|. Можна вказати кілька ключів з роздільником .. |
-v | value | input | Значення, які потрібно додати, видалити, запитати або змінити. | yb -f "file.yaml" -k "ключ" -v "значення" | Підтримує значення у форматі: value, - list-value, |> pipe-value. |
-A | array | формат | Виводить вивід у вигляді масиву bash. | yb -f "file.yaml" -A -k "key" | Забезпечить інше форматування, якщо використовувати з -F або -d. |
-C | colors | format | Примусово використовує кольори у нетермінальному виводі. | yb -Cf "file.yaml" -A -k "key" | |
-d | depth | format | Забезпечує вихід з оригінальною глибиною. | yb -f "file.yaml" -d -k "key.childkey" -v "new_value" | |
-F | format | format | Друкує відформатований вивід для представлення деревоподібності в рядку. | yb -f "file.yaml" -F -k "key" | Забезпечить інше форматування, якщо використовувати з -A або -d. |
-K | keys ключі | format | Друкує лише ключі. | yb -Kf "file.yaml" -k "key" | |
-l | line | format | Друкує { {line}} у кожному рядку. | yb -f "file.yaml" -l -k "key" | |
-L | level | format | Друкує { {<номер рівня>} } у кожному рядку. | yb -f "file.yaml" -L -k "key" | |
-R | raw | format | Друкує вивід без доданих кольорів, коментарів та порожніх рядків. | yb -f "file.yaml" -R -k "key" | |
-n | number | format | Друкує { {<номер рядка>} } на кожному рядку. | yb -f "file.yaml" -n -k "key" | |
-T | type | format | Друкує тип значення. | yb -f "file.yaml" -T -k "key" | Підтримує null, boolean, integer, floating number, string. |
-s | spaces | Deprecated | Вибір кількості пробілів. |
Підтримка YAML
yb забезпечує базову підтримку YAML для редагування та читання YAML-файлу. Починаючи з версії 0.9, yb не підтримує розширені функції, такі як пошук на основі груп, прив’язки, псевдоніми та перевизначення.
Розробка
Повні вихідні коди доступні в папці /src/. Версія, що знаходиться на кореневому рівні, зібрана за допомогою скрипта /src/tools/dist.sh.
Тести
Простий набір тестів доступний у папці tests/. Він представляє різні варіанти використання yb.
Щоб запустити його, виконайте команду нижче з кореневого рівня репозиторію:
Ви можете надати додатковий параметр для вибору парсера (наприклад, під час розробки):
Дякую
Всім вам, YAML-івцям!
Зроблено t0pd4wn на Bash.