Help:Utils

From Svacer Wiki
Revision as of 09:35, 27 August 2024 by Writer (talk | contribs) (Создание страницы для описания pfixer)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Утилиты

pfixer

pfixer -- утилита для исправления путей при экспорте снимков в файл. Замена путей в существующем снимке опасна, поэтому предлагается делать экспорт снимка с заменой путей. При необходимости исходный снимок пользователь может удалить с сервера.

Утилита так же работает со снимками в файлах. pfixer поддерживает версии Svacer начиная с версии 7, но поставляется после 9-0-2. Исполняемый файл находится в bin.

Для работы с утилитой необходимо создать файл содержащий правила замены путей. Это должен быть юниксовый текстовый файл (разделитель строк знак '\n'). Каждая строчка должна содержать заменяемый префикс и значение, разделённый двоеточием. Если префикс должен быть удалён, для замены используется знак '-'. Его указать можно через опцию --map-file или через stdin.

<префикс1>:<замена1>
<префикс2>:<замена2>
<префикс3>:<замена3>
<префикс4>:-


Так же есть возможность использовать регулярные выражения (в экспериментальной стадии) из языка Golang (https://pkg.go.dev/regexp#Regexp.ReplaceAllString). В этом случае использовать надо знак '@' в начале строки. Так же можно использовать $var для ссылок на группы в регулярном выражении.

@<регулярное_выражение1>:<замена>
@<регулярное_выражение2>:-

Все правила замен упорядочиваются перед заменой, применяется самое длинное подходящее правило. Процесс прерывается в случае если правила приводят пути конфликтуют после замены (два пути превратились в один).

Авторизацию на сервере можно передать через опции --credentials вида login:password или --token сразу токен авторизации.

Исходный снимок с сервера можно передать сразу ссылкой с сайта.


Примеры

pfixer --source http://svacer/mode/review/project/{project}/branch/{branch}/snapshot/{snapshot} --output updated.snap --credentials login:password --map-file map.txt 
pfixer --source input.snap --output updated.snap -map-file map.txt --log-file test.log
pfixer --source input.snap --output updated.snap --log-file test.log | cat map.txt