Help:Utils: Difference between revisions

From Svacer Wiki
(Создание страницы для описания pfixer)
 
(add util binary link)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Утилиты ==
== Утилиты ==
=== pfixer ===
=== pfixer ===
pfixer -- утилита для исправления путей при экспорте снимков в файл. Замена путей в существующем снимке опасна, поэтому предлагается делать экспорт снимка с заменой путей. При необходимости исходный снимок пользователь может удалить с сервера.  
pfixer утилита для исправления путей при экспорте снимков в файл. Замена путей в существующем снимке опасна, поэтому предлагается делать экспорт снимка с заменой путей. После, при необходимости, исходный снимок можно удалить с сервера. Утилита также работает со снимками в <code>.snap</code> файлах.  


Утилита так же работает со снимками в файлах. pfixer поддерживает версии Svacer начиная с версии 7, но поставляется после 9-0-2. Исполняемый файл находится в bin.
Поддерживаются версии Svacer, начиная с 7-0-0, но в дистрибутив утилита будет входить после 9-0-2, а пока ее можно скачать отдельно: [https://svacer.ispras.ru/releases/svacer-9-0-2/pfixer pfixer] / [https://svacer.ispras.ru/releases/svacer-9-0-2/pfixer.exe pfixer.exe]


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


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


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


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


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


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


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


'''Примеры'''


Примеры
<pre>
<pre>
pfixer --source http://svacer/mode/review/project/{project}/branch/{branch}/snapshot/{snapshot} --output updated.snap --credentials login:password --map-file map.txt  
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 -map-file map.txt --log-file test.log
pfixer --source input.snap --output updated.snap --log-file test.log | cat map.txt  
pfixer --source input.snap --output updated.snap --log-file test.log | cat map.txt
</pre>
</pre>

Latest revision as of 13:19, 27 August 2024

Утилиты

pfixer

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

Поддерживаются версии Svacer, начиная с 7-0-0, но в дистрибутив утилита будет входить после 9-0-2, а пока ее можно скачать отдельно: pfixer / pfixer.exe

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

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

Также есть возможность использовать регулярные выражения (в экспериментальной стадии) из языка Go. В этом случае надо использовать знак '@' в начале строки. Можно использовать $var для ссылок на группы в регулярном выражении.

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

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

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

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

Примеры

 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