Версия представляет собой набор элементов, разделенных точкой и, опционально,
имеющих суффикс -SNAPSHOT.
Каждый значимый элемент версии должен начинается с цифры. Если элемент имеет нечисловой суффикс, то числовое значение берется до начала этого суффикса.
Версия с суффиком -SNAPSHOT далее будет называться рабочей версией, а версия
без этого суффикса будет называться релизом.
Примеры значений:
11.01.2.3.4.51.2-SNAPSHOT1a.2b.3.4.qwe.zxc
Утилита принимает из стандартного потока номер версии, применяет к версии операции, заданные ключами коммандной строки и распечатывает результат в стандартный поток.
Список ключей:
-gen-- изменение "мажорного" номера версии (X.x.x);-ver-- изменение "минорного" номера версии (x.X.x);-sub-- изменение "вспомогательного" номера версии (x.x.X);-last-- изменение крайнего правого номера версии (x.x...x.X);-release-- формирование номера версии выпуска (релиза);-file<файл> -- использование файла вместо стандартных потоков;-level-- вывести количество элементов версии;-tool-- использование (вывод) версии этой утилиты;-trunk-- отсечение компонент версии, далее указанной (-gen,-verили-sub).
С помощью опции -h печатается экран справки:
Usage of verctl-2.0.exe:
-file string
Use a file instead of standard stream
-gen
Use generation level
-last
Use last level
-level
Print version level
-release
Make release
-sub
Use subversion level
-tool
Print tool version
-trunk
Trunk version string
-ver
Use version level
Алгоритм обработки версии следующий (без указания ключей -trunk или -tool).
- Принять по-умолчанию количество элементов в версии 1.
- Если задан ключ
-sub, то принять по-умолчанию количество элементов в версии 3. - Если задан ключ
-ver, то принять по-умолчанию количество элементов в версии 2. - Если задан ключ
-gen, то принять по-умолчанию количество элементов в версии 1. - Если входные данные не пустые, то принять их как начальное значение версии.
Иначе, начальное значение будет
1-SNAPSHOT,1.0-SNAPSHOTили1.0.0-SNAPSHOT. - Если заданы ключи
-lastи вход был не пустой, то переключить крайний правый элемент версии и установить суффикс рабочей версии. - Если заданы ключи
-subи вход был не пустой, то переключить третий элемент версии и установить суффикс рабочей версии. - Если заданы ключи
-verи вход был не пустой, то переключить второй элемент версии и установить суффикс рабочей версии. - Если заданы ключи
-genи вход был не пустой, то переключить первый элемент версии и установить суффикс рабочей версии. - Если задан ключ
-release, то сформировать из номера версии-релиза:- если имеется суффикс рабочей версии, то убрать его;
- иначе, увеличить самый младший элемент версии.
- Распечатать результат.
Алгоритм обработки версии с указанием ключа -tool.
- Установить обрабатываемую версию, равную версии этой утилиты.
- Если заданы ключи
-sub, то оставить максимум три элемента версии. - Если заданы ключи
-ver, то оставить максимум два элемента версии. - Если заданы ключи
-gen, то оставить первый элемент версии. - Распечатать результат.
Алгоритм обработки версии с указанием ключа -trunk.
- Установить версию в соотвествии с заданными ключами.
- Если заданы ключи
-last, то отсечь все элементы, кроме цифровых элементов и признака рабочей версии. - Если заданы ключи
-sub, то оставить максимум три элемента версии и признак рабочей версии. - Если заданы ключи
-ver, то оставить максимум два элемента версии и признак рабочей версии. - Если заданы ключи
-gen, то оставить первый элемент версии и признак рабочей версии. - Если задан ключ
-release, то сформировать из номера версии-релиза:- если имеется суффикс рабочей версии, то убрать его;
- иначе, увеличить самый младший элемент версии.
- Распечатать результат.
Командная строка: verctl
| Вход | Выход |
|---|---|
| 1-SNAPSHOT | |
| 1.2-SNAPSHOT | 1.2-SNAPSHOT |
| 1.2 | 1.2 |
| 1.2.3 | 1.2.3 |
Командная строка: verctl -ver
| Вход | Выход |
|---|---|
| 1.0-SNAPSHOT | |
| 1.0-SNAPSHOT | 1.1-SNAPSHOT |
| 1.2-SNAPSHOT | 1.3-SNAPSHOT |
| 1.2 | 1.3-SNAPSHOT |
| 1.2.3 | 1.3.0-SNAPSHOT |
Командная строка: verctl -last
| Вход | Выход |
|---|---|
| 1-SNAPSHOT | |
| 1.0-SNAPSHOT | 1.1-SNAPSHOT |
| 1.2-SNAPSHOT | 1.3-SNAPSHOT |
| 1.2 | 1.3-SNAPSHOT |
| 1.2.3 | 1.2.4-SNAPSHOT |
| 1.2.3.4.5.6 | 1.2.3.4.5.7-SNAPSHOT |
Командная строка: verctl -release
| Вход | Выход |
|---|---|
| 1 | |
| 1.2-SNAPSHOT | 1.2 |
| 1.2 | 1.3 |
| 1.2.3 | 1.2.4 |
Командная строка: verctl -ver -release
| Вход | Выход |
|---|---|
| 1.0 | |
| 1.2-SNAPSHOT | 1.3 |
| 1.2 | 1.3 |
| 1.2.3 | 1.3.0 |
Командная строка: verctl -ver -trunk
| Вход | Выход |
|---|---|
| 1.0-SNAPSHOT | |
| 1 | 1 |
| 1.2-SNAPSHOT | 1.2-SNAPSHOT |
| 1.2 | 1.2 |
| 1.2.3 | 1.2 |
| 1.2.3.suf.fix | 1.2 |
Командная строка: verctl -level
| Вход | Выход |
|---|---|
| 1 | |
| 1.2-SNAPSHOT | 2 |
| 1.2 | 2 |
| 1.2.3 | 3 |
| 1.2.3.suf.fix | 3 |