/ovm

OneScript Version Manager

Primary Language1C EnterpriseBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

OneScript Version Manager

Release Build Status Quality Gate Tech Debt

Цель

ovm - утилита, предназначенная для установки, обновления и переключения между различными версиями OneScript. Вдохновение черпается из nvm (node.js version manager)

Пререквизиты

  • Установленный .Net Framework >=4.5.2 либо Mono >=4.6
  • Работающий интернет

Установка

Windows

  • Скачать ovm.exe со страницы страницы релизов GitHub
  • По желанию прописать путь к ovm.exe в переменной окружения PATH

Если на машине установлен OneScript из msi и/или путь к установленному OneScript прописан в PATH, то перед началом использования ovm необходимо один раз в консоли с административными правами выполнить команду ovm migrate, после чего перезапустить консоль.

Linux

  • Скачать ovm.exe и ScriptEngine.HostedScript.dll со страницы страницы релизов GitHub
  • Файлы должны располагаться в одной папке
  • Для быстрого использования приложения можно создать sh-файл со следующим содержанием:
mono path/to/ovm.exe "$@"

и добавить его в $PATH (например, в ~/.local/share/bin)

Поддержка различных терминалов

Для каждого из терминалов активация ovm выглядит по-разному. После выполнения первичной активации в большинстве случаев необходимо переоткрыть текущий терминал (это надо сделать один раз). Для перечисленных ниже терминалов действия по активации происходят автоматически.

cmd (Windows)

При выполнении команды ovm migrate:

создается запись в реестре по адресу HKCU\Software\Microsoft\Command Processor\Autorun следующего содержания:

set PATH=%OVM_OSCRIPTBIN%;%PATH%

powershell (Windows)

При выполнении команды ovm migrate:

создается файл (либо добавляется в существующий) по адресу %USERPROFILE%\Documents\WindowsPowerShell\profile.ps1 со следующим содержанием:

set PATH=$OVM_OSCRIPTBIN;$PATH

sh (*nix)

При первичной активации версии OneScript:

создается файл (либо добавляется в существующий) по адресу $HOME/.profile со следующим содержанием:

export $HOME/.local/share/ovm/current/bin:$PATH

bash (*nix)

При первичной активации версии OneScript:

создается файл (либо добавляется в существующий) по адресу $HOME/.bashrc со следующим содержанием:

export $HOME/.local/share/ovm/current/bin:$PATH

Другие терминалы

Автоматическая активация ovm в других терминалах не гарантируется. Чаще всего она будет делаться по аналогии (в конфигурационных файлах), либо в настройках самого терминала.

Для ConEmu активация производится через Settings -> Startup -> Environment. В метод установки PATH необходимо добавить путь к %OVM_OSCRIPTBIN% перед текущим %PATH%. Например, set PATH=%OVM_OSCRIPTBIN%;%PATH%

Использование

ovm - утилита командной строки, основанная на библиотеке cli. Утилита содержит несколько команд с различными аргументами и опциями. Каждая команда имеет длинное имя и короткий алиас. Каждый аргумент или опция могут быть установлены из переменных окружения либо указаны непосредственно в командной строке. Более подробно - в справке по библиотеке cli.

Установка OneScript

Установка OneScript производится в пользовательский каталог, не захламляя общее системное пространство.

ovm install dev # Установить последнюю ночную сборку
ovm install dev stable 1.0.19 # Установить стабильную, ночную сборки и версию 1.0.19

ovm use --install dev # Активировать ночную сборку и установить, если ее нет

Активация OneScript

Для запуска oscript и прочих утилит без указания путей к ним необходимо произвести активацию версии OneScript. При этом в каталоге данных ovm создастся специальная символическая ссылка current, ведущая на активированную версию.

ovm use dev # Активировать ранее установленную версию dev (ночную сборку)
ovm use --install dev # установить (если ее нет) и активировать версию dev

Удаление OneScript

ovm delete 1.0.19 # Удалить установленную версию 1.0.19

Вывод установленных версий OneScript

$ ovm ls # Вывод установленных версий

1.0.19 -> 1.0.19.105 (C:\Users\NikitaGryzlov\AppData\Local\ovm\1.0.19)
current -> 1.0.20.160 (C:\Users\NikitaGryzlov\AppData\Local\ovm\current)
dev -> 1.0.20.160 (C:\Users\NikitaGryzlov\AppData\Local\ovm\dev)
$ ovm ls --remote # Вывод версий, доступных к установке с сайта

1.0.19 (http://oscript.io/downloads/archive/1_0_19)
1.0.18 (http://oscript.io/downloads/archive/1_0_18)
$ ovm ls --all # Вывод всех версий - установленных и доступных

1.0.18 -> 1.0.18.101 -> C:\Users\NikitaGryzlov\AppData\Local\ovm\1.0.18 -> http://oscript.io/downloads/archive/1_0_18
1.0.19 -> 1.0.19.105 -> C:\Users\NikitaGryzlov\AppData\Local\ovm\1.0.19 -> http://oscript.io/downloads/archive/1_0_19
current -> 1.0.20.160 -> C:\Users\NikitaGryzlov\AppData\Local\ovm\current -> unknown
dev -> 1.0.20.160 -> C:\Users\NikitaGryzlov\AppData\Local\ovm\dev -> http://oscript.io/downloads
stable -> unknown -> not installed -> http://oscript.io/downloads

Запуск приложений в окружении конкретной версии

ovm позволяет запускать приложения в окружении конкретной установленной версии OneScript. При этом происходит доустановка переменной окружения PATH к каталогу указанной версии.

$ ovm run 1.0.19 oscript -version # Выполнение команды oscript -version в окружении 1.0.19

1.0.19.105
$ ovm run 1.0.19 where oscript # Вывод сторонней команды where в окружении 1.0.19

C:\Users\NikitaGryzlov\AppData\Local\ovm\1.0.19\bin\oscript.exe # Путь к 1.0.19 указывается раньше, чем путь к current, благодаря запуску ovm run
C:\Users\NikitaGryzlov\AppData\Local\ovm\current\bin\oscript.exe

Получение пути к исполняемому файлу oscript

$ ovm which 1.0.19

C:\Users\NikitaGryzlov\AppData\Local\ovm\1.0.19\bin\oscript.exe

Вывод команды ovm

Приложение: ovm
 OneScript Version Manager v1.0.0

Строка запуска: ovm [OPTIONS] КОМАНДА [аргументы...]

Опции:
  -v, --version         показать версию и выйти

Доступные команды:
  install, i            Установить OneScript указанных версий
  use, u                Использовать OneScript указанной версии
  uninstall, delete, d  Удалить OneScript указанных версий
  list, ls              Вывести список установленных и/или доступных версий OneScript
  run, r                Запустить исполняемый файл в окружении указанной версии OneScript
  which, w              Вывести путь к установленной версии OneScript
  migrate               Поместить установленный системный OneScript под контроль ovm. Только для Windows

Для вывода справки по доступным командам наберите: ovm КОМАНДА --help