Py-ini-config: различия между версиями
м |
|||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 1: | Строка 1: | ||
| Строка 53: | Строка 55: | ||
<big>Показывает текущую версию py-ini-config.</big> | <big>Показывает текущую версию py-ini-config.</big> | ||
=== | === <big>-s separator</big> === | ||
<big>Если указано, рассматривает файл конфига с указанным разделителем между переменными и их значениями '''separator''' вместо '=' по умолчанию.</big> | <big>Если указано, рассматривает файл конфига с указанным разделителем между переменными и их значениями '''separator''' вместо '=' по умолчанию.</big> | ||
=== | === <big>-n, --no-section</big> === | ||
<big>Если указано вместо '''section''', рассматривает файлы конфига без секций.</big> | <big>Если указано вместо '''section''', рассматривает файлы конфига без секций.</big> | ||
=== | === <big>-c, --create</big> === | ||
<big>Если указано, создаёт новый файл конфига. Если файл уже существует, продолжает работать с ним. Используется с '''set''' или '''add'''.</big> | <big>Если указано, создаёт новый файл конфига. Если файл уже существует, продолжает работать с ним. Используется с '''set''' или '''add'''.</big> | ||
=== <big> | === <big>-a, --all</big> === | ||
<big>Используется вместо отдельного файла с функциями '''get''' and '''is_set'''. Имя, которое пишется после этого ключа, одновременно является именем файла конфига и началом имени папки, которое оканчивается на '''''´.d´'''''. Поиск указанной переменной '''var''' будет вестись как в указанном файле, так и во всех файлах внутри папки.</big> | <big>Используется вместо отдельного файла с функциями '''get''' and '''is_set'''. Имя, которое пишется после этого ключа, одновременно является именем файла конфига и началом имени папки, которое оканчивается на '''''´.d´'''''. Поиск указанной переменной '''var''' будет вестись как в указанном файле, так и во всех файлах внутри папки.</big> | ||
=== <big> | === <big>-i</big> === | ||
<big>Используется с '''-a, --all'''. Если указано, изменяет порядок обхода файлов и папок (сначала поиск будет осуществляться в корневых папках, потом в файлах). Используется для sddm.</big> | <big>Используется с '''-a, --all'''. Если указано, изменяет порядок обхода файлов и папок (сначала поиск будет осуществляться в корневых папках, потом в файлах). Используется для sddm.</big> | ||
=== | === <big>-e</big> === | ||
<big>Используется с '''-a, --all'''. Если задано значение, в папке будут рассмотрены только файлы с указанным расширением.</big> | <big>Используется с '''-a, --all'''. Если задано значение, в папке будут рассмотрены только файлы с указанным расширением.</big> | ||
=== | === <big>--sort-collected</big> === | ||
<big>Используется с '''-a, --all''' (часто используется с --shadowing, но не всегда). Если указано, приоритет drop-in файлов будет зависеть не от положения директории в порядке обхода, а от алфавитного местоположения при сортировке списка файлов (при этом все файлы из drop-in директорий собраны в общую папку). Используется для systemd.</big> | <big>Используется с '''-a, --all''' (часто используется с --shadowing, но не всегда). Если указано, приоритет drop-in файлов будет зависеть не от положения директории в порядке обхода, а от алфавитного местоположения при сортировке списка файлов (при этом все файлы из drop-in директорий собраны в общую папку). Используется для systemd.</big> | ||
=== | === <big>--shadowing</big> === | ||
<big>Используется с '''-a, --all'''. Если указано, одноименные файлы из следующей подпапки полностью заменяют одноименные файлы из предыдущей подпапки (т. е. менее приоритетные одноименные файлы будут полностью исключены). Используется для systemd.</big> | <big>Используется с '''-a, --all'''. Если указано, одноименные файлы из следующей подпапки полностью заменяют одноименные файлы из предыдущей подпапки (т. е. менее приоритетные одноименные файлы будут полностью исключены). Используется для systemd.</big> | ||
=== <big> | === <big> --flush</big> === | ||
<big>Если используется с '''del''', полностью удаляет секцию, в которой не осталось переменных.</big> | <big>Если используется с '''del''', полностью удаляет секцию, в которой не осталось переменных.</big> | ||
=== <big> | === <big> --no-indent</big> === | ||
<big>Если указано с '''set''' или '''add''', при указании значения для существующей переменной удаляет отступ в начале строки.</big> | <big>Если указано с '''set''' или '''add''', при указании значения для существующей переменной удаляет отступ в начале строки.</big> | ||
=== <big> | === <big> -S</big> === | ||
<big>Если указано значение, оно используется для отделения значений переменных друг от друга вместо запятой.</big> | <big>Если указано значение, оно используется для отделения значений переменных друг от друга вместо запятой.</big> | ||
| Строка 89: | Строка 91: | ||
<big>Если указано значение, точка с запятой используется как символ комментирования вместо ´#´.</big> | <big>Если указано значение, точка с запятой используется как символ комментирования вместо ´#´.</big> | ||
=== <big> | === <big>--view-comments</big> === | ||
<big>Используется с командами '''set''' и '''add'''. Если указан данный параметр, и переменная имеет указанное значение в закомментированной строке, такая команда раскомментирует всю строку (и комментирует раскомментированную, если она была).</big> | <big>Используется с командами '''set''' и '''add'''. Если указан данный параметр, и переменная имеет указанное значение в закомментированной строке, такая команда раскомментирует всю строку (и комментирует раскомментированную, если она была).</big> | ||
=== | === <big>-v, --verbose</big> === | ||
<big>Используется с '''-a, --all'''. Если указано, выводит подробную информацию в '''''stderr''''' в процессе работы.</big> | <big>Используется с '''-a, --all'''. Если указано, выводит подробную информацию в '''''stderr''''' в процессе работы.</big> | ||
Текущая версия на 16:57, 15 апреля 2025
Утилита для правки конфигов 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, разделителем между переменной и ее значением будет символ :