Py-ini-config

Материал из IT в школе
Перейти к навигацииПерейти к поиску



Утилита для правки конфигов ini.

Установка

Введите в консоли:

sudo dnf in py-ini-config

Или найдите и установите py-ini-config через средство установки программ dnfdragora («Пакеты»).

Запуск

Данная утилита работает только в консольном режиме.

Действия в утилите

set

Изменяет значение переменной var или добавляет переменную var с указанным значением value в секцию section. Если секция section не существует, она будет создана. Если в одной секции есть несколько переменных с одинаковым именем, изменяет значение последней переменной.

add

Добавляет значение value к набору значений переменной var или создаёт переменную var (если такой не было) с указанным значением value в секции section. Если секция section не существует, она будет создана. Если в одной секции есть несколько переменных с одинаковым именем, добавляет значение к последней переменной.

comment

Комментирует переменную var в указанной секции section или секцию section целиком. Если в одной секции есть несколько переменных с одинаковым именем, комментирует все эти переменные.

uncomment

Раскомментирует переменную var в указанной секции section или секцию section целиком. Если в одной секции есть несколько переменных с одинаковым именем, раскомментирует только последнюю переменную.

get

Выводит значение переменной var в указанной секции section из файла file. Если переменная var не указана, выводит секцию целиком. Если в одной секции есть несколько переменных с одинаковым именем, выводит значение только первой переменной.

is_set

Проверяет, существует ли переменная var в указанной секции section. Возвращает 0, если переменная var существует, иначе возвращает 1. Если указано значение, возвращает 0, если указанное значение присутствует в наборе значений переменной var, иначе возвращает 1. Чтобы увидеть результат выполнения команды is_set, можно ввести в консоли после этой команды ; echo $? Это позволит увидеть код возврата последней выполненной в консоли операции.

get_commented

Выводит значение закомментированной переменной var в указанной секции section из файла file. Если в одной секции есть несколько переменных с одинаковым именем, выводит значение всех закомментированных переменных.

del

Удаляет переменную var из указанной секции section файла конфига file. Если указано значение value, удаляет указанное значение value из набора значений переменной var.Если в одной секции есть несколько переменных с одинаковым именем, удаляет одноименные переменные.

del_section

Удаляет секцию section из файла конфига file целиком. Если есть несколько секций с одинаковым именем, удаляет первую секцию.

is_empty

Проверяет, является ли указанная секция section пустой. Возвращает 0, если секция пустая, иначе возвращает 1. Чтобы увидеть результат выполнения команды is_set, можно ввести в консоли после этой команды ; echo $? Это позволит увидеть код возврата последней выполненной в консоли операции.

rename

Переименовывает переменную var в указанной секции section. Если в одной секции есть несколько переменных с одинаковым именем, переименовывает все одноименные переменные.

Дополнительные опции

-V, --version

Показывает текущую версию py-ini-config.

-s separator

Если указано, рассматривает файл конфига с указанным разделителем между переменными и их значениями separator вместо '=' по умолчанию.

-n, --no-section

Если указано вместо section, рассматривает файлы конфига без секций.

-c, --create

Если указано, создаёт новый файл конфига. Если файл уже существует, продолжает работать с ним. Используется с set или add.

-a, --all

Используется вместо отдельного файла с функциями get and is_set. Имя, которое пишется после этого ключа, одновременно является именем файла конфига и началом имени папки, которое оканчивается на ´.d´. Поиск указанной переменной var будет вестись как в указанном файле, так и во всех файлах внутри папки.

-i

Используется с -a, --all. Если указано, изменяет порядок обхода файлов и папок (сначала поиск будет осуществляться в корневых папках, потом в файлах). Используется для sddm.

-e

Используется с -a, --all. Если задано значение, в папке будут рассмотрены только файлы с указанным расширением.

--sort-collected

Используется с -a, --all (часто используется с --shadowing, но не всегда). Если указано, приоритет drop-in файлов будет зависеть не от положения директории в порядке обхода, а от алфавитного местоположения при сортировке списка файлов (при этом все файлы из drop-in директорий собраны в общую папку). Используется для systemd.

--shadowing

Используется с -a, --all. Если указано, одноименные файлы из следующей подпапки полностью заменяют одноименные файлы из предыдущей подпапки (т. е. менее приоритетные одноименные файлы будут полностью исключены). Используется для systemd.

 --flush

Если используется с del, полностью удаляет секцию, в которой не осталось переменных.

 --no-indent

Если указано с set или add, при указании значения для существующей переменной удаляет отступ в начале строки.

 -S

Если указано значение, оно используется для отделения значений переменных друг от друга вместо запятой.

 --semicolon-comment

Если указано значение, точка с запятой используется как символ комментирования вместо ´#´.

--view-comments

Используется с командами set и add. Если указан данный параметр, и переменная имеет указанное значение в закомментированной строке, такая команда раскомментирует всю строку (и комментирует раскомментированную, если она была).

-v, --verbose

Используется с -a, --all. Если указано, выводит подробную информацию в stderr в процессе работы.

Примеры

py-ini-config set -c config1 a b 5 создает файл config1 с секцией a и значением 5 переменной b


py-ini-config set -c config2 -n a 10 создает файл config2 со значением 10 переменной a без создания секции


py-ini-config get -a config1 -a config2 -n b ищет значение переменной b в файле config1, потом в папке config1.d, затем также в файле config2 и папке config2.d.


py-ini-config get -a config1 -a config2 -i -n b ищет значение переменной b в папке config1.d, потом в файле config1, затем также в папке config2.d и файле config2.


py-ini-config get -a config1 -a config2 -n b -e conf ищет значение b без секций во всех файлах с расширением .conf


py-ini-config get -a config1 -a config2 -n b --shadowing ищет значение переменной b, исключая при поиске одноименные файлы в config1


py-ini-config get -a config1 -a config2 -n b --sort-collected ищет значение b без секций во всех файлах и папках .d, предварительно отсортировав все просматриваемые файлы в алфавитном порядке


py-ini-config set config1 a b 10 устанавливает значение 10 для переменной b в секции a файла config1


py-ini-config add config1 a b 11 добавляет значение 11 для переменной b в секции a файла config1


py-ini-config add config3 a b 11 -S ! добавляет значение 11 переменной b в секции a файла config3 c помощью разделителя значений переменных !


py-ini-config add config1 b b 601 --no-indent добавляет значение 601 переменной b в секции b и убирает отступ в начале строки, если он был


py-ini-config comment config1 b комментирует все переменные в секции b файла config1


py-ini-config comment config1 b b --semicolon-comment комментирует переменную b в секции b файла config1 с помощью символа ;


py-ini-config uncomment config1 b раскомментирует все переменные в секции b файла config1


py-ini-config get config1 b выводит все значения переменных в секции b файла config1


py-ini-config get config2 -n b выводит значение переменной b файла config2


py-ini-config get_commented config1 a b выводит значение закомментированной переменной b в секции a файла config1


py-ini-config del config1 b c удаляет переменную c из секции b файла config1


py-ini-config del config1 b a --flush удаляет переменную a из секции b файла config1, после чего удаляет секцию b (в которой не осталось переменных)


py-ini-config del_section config1 a удаляет всю секцию a из файла config1


py-ini-config is_empty config1 b возвращает 0, если секция b файла config1 пустая, в противном случае возвращает 1


py-ini-config rename config1 b a newb переименовывает переменную a секции b файла config1 в newb


py-ini-config rename config3 b d and -s : переименовывает переменную d секции b файла config3 в and, разделителем между переменной и ее значением будет символ :