|
3 | 3 | [](https://sonar.silverbulleters.org/dashboard?id=sonar-opensource-add-ovm) |
4 | 4 | [](https://sonar.silverbulleters.org/dashboard?id=sonar-opensource-add-ovm) |
5 | 5 |
|
| 6 | +## Цель |
| 7 | + |
| 8 | +ovm - утилита, предназначенная для установки, обновления и переключения между различными версиями OneScript. Вдохновение черпается из nvm (node.js version manager) |
| 9 | + |
| 10 | +## Пререквизиты |
| 11 | + |
| 12 | +* Установленный `.Net Framework >=4.5.2` либо `Mono >=4.6` |
| 13 | +* Работающий интернет |
| 14 | + |
| 15 | +## Установка |
| 16 | + |
| 17 | +### Windows |
| 18 | + |
| 19 | +* Скачать `ovm.exe` со страницы [страницы релизов GitHub](https://github.com/silverbulleters/ovm/releases) |
| 20 | +* По желанию прописать путь к ovm.exe в переменной окружения `PATH` |
| 21 | + |
| 22 | +Если на машине установлен OneScript из msi и/или путь к установленному OneScript прописан в `PATH`, то перед началом использования `ovm` необходимо один раз в консоли с административными правами выполнить команду `ovm migrate`, после чего **перезапустить консоль**. |
| 23 | + |
| 24 | +### Linux |
| 25 | + |
| 26 | +* Скачать `ovm.exe` и `ScriptEngine.HostedScript.dll` со страницы [страницы релизов GitHub](https://github.com/silverbulleters/ovm/releases) |
| 27 | +* Файлы должны располагаться в одной папке |
| 28 | +* Для быстрого использования приложения можно создать sh-файл со следующим содержанием: |
| 29 | + |
| 30 | +```sh |
| 31 | +mono path/to/ovm.exe "$@" |
| 32 | +``` |
| 33 | + |
| 34 | +и добавить его в `$PATH` (например, в `~/.local/share/bin`) |
| 35 | + |
| 36 | +## Поддержка различных терминалов |
| 37 | + |
| 38 | +Для каждого из терминалов активация ovm выглядит по-разному. После выполнения первичной активации в большинстве случаев необходимо переоткрыть текущий терминал (это надо сделать один раз). Для перечисленных ниже терминалов действия по активации происходят **автоматически**. |
| 39 | + |
| 40 | +### cmd (Windows) |
| 41 | + |
| 42 | +При выполнении команды `ovm migrate`: |
| 43 | +создается запись в реестре по адресу `HKCU\Software\Microsoft\Command Processor\Autorun` следующего содержания: |
| 44 | + |
| 45 | +```cmd |
| 46 | +set PATH=%OVM_OSCRIPTBIN%;%PATH% |
| 47 | +``` |
| 48 | + |
| 49 | +### powershell (Windows) |
| 50 | + |
| 51 | +При выполнении команды `ovm migrate`: |
| 52 | +создается файл (либо добавляется в существующий) по адресу `%USERPROFILE%\Documents\WindowsPowerShell\profile.ps1` со следующим содержанием: |
| 53 | + |
| 54 | +```powershell |
| 55 | +set PATH=$OVM_OSCRIPTBIN;$PATH |
| 56 | +``` |
| 57 | + |
| 58 | +### sh (*nix) |
| 59 | + |
| 60 | +При первичной активации версии OneScript: |
| 61 | +создается файл (либо добавляется в существующий) по адресу `$HOME/.profile` со следующим содержанием: |
| 62 | + |
| 63 | +```sh |
| 64 | +export $HOME/.local/share/ovm/current/bin:$PATH |
| 65 | +``` |
| 66 | + |
| 67 | +### bash (*nix) |
| 68 | + |
| 69 | +При первичной активации версии OneScript: |
| 70 | +создается файл (либо добавляется в существующий) по адресу `$HOME/.bashrc` со следующим содержанием: |
| 71 | + |
| 72 | +```bash |
| 73 | +export $HOME/.local/share/ovm/current/bin:$PATH |
| 74 | +``` |
| 75 | + |
| 76 | +### Другие терминалы |
| 77 | + |
| 78 | +Автоматическая активация ovm в других терминалах не гарантируется. Чаще всего она будет делаться по аналогии (в конфигурационных файлах), либо в настройках самого терминала. |
| 79 | + |
| 80 | +Для `ConEmu` активация производится через `Settings` -> `Startup` -> `Environment`. В метод установки PATH необходимо добавить путь к %OVM_OSCRIPTBIN% перед текущим `%PATH%`. Например, `set PATH=%OVM_OSCRIPTBIN%;%PATH%` |
| 81 | + |
| 82 | +## Использование |
| 83 | + |
| 84 | +ovm - утилита командной строки, основанная на библиотеке [cli](https://github.com/khorevaa/cli). Утилита содержит несколько команд с различными аргументами и опциями. Каждая команда имеет длинное имя и короткий алиас. Каждый аргумент или опция могут быть установлены из переменных окружения либо указаны непосредственно в командной строке. Более подробно - в справке по библиотеке [cli](https://github.com/khorevaa/cli). |
| 85 | + |
| 86 | +### Установка OneScript |
| 87 | + |
| 88 | +Установка OneScript производится в пользовательский каталог, не захламляя общее системное пространство. |
| 89 | + |
| 90 | +```sh |
| 91 | +ovm install dev # Установить последнюю ночную сборку |
| 92 | +ovm install dev stable 1.0.19 # Установить стабильную, ночную сборки и версию 1.0.19 |
| 93 | + |
| 94 | +ovm use --install dev # Активировать ночную сборку и установить, если ее нет |
| 95 | +``` |
| 96 | + |
| 97 | +### Активация OneScript |
| 98 | + |
| 99 | +Для запуска `oscript` и прочих утилит без указания путей к ним необходимо произвести активацию версии OneScript. При этом в каталоге данных `ovm` создастся специальная символическая ссылка `current`, ведущая на активированную версию. |
| 100 | + |
| 101 | +```sh |
| 102 | +ovm use dev # Активировать ранее установленную версию dev (ночную сборку) |
| 103 | +ovm use --install dev # установить (если ее нет) и активировать версию dev |
| 104 | +``` |
| 105 | + |
| 106 | +### Удаление OneScript |
| 107 | + |
| 108 | +```sh |
| 109 | +ovm delete 1.0.19 # Удалить установленную версию 1.0.19 |
| 110 | +``` |
| 111 | + |
| 112 | +### Вывод установленных версий OneScript |
| 113 | + |
| 114 | +```sh |
| 115 | +$ ovm ls # Вывод установленных версий |
| 116 | + |
| 117 | +1.0.19 -> 1.0.19.105 (C:\Users\NikitaGryzlov\AppData\Local\ovm\1.0.19) |
| 118 | +current -> 1.0.20.160 (C:\Users\NikitaGryzlov\AppData\Local\ovm\current) |
| 119 | +dev -> 1.0.20.160 (C:\Users\NikitaGryzlov\AppData\Local\ovm\dev) |
| 120 | +``` |
| 121 | + |
| 122 | +```sh |
| 123 | +$ ovm ls --remote # Вывод версий, доступных к установке с сайта |
| 124 | + |
| 125 | +1.0.19 (http://oscript.io/downloads/archive/1_0_19) |
| 126 | +1.0.18 (http://oscript.io/downloads/archive/1_0_18) |
| 127 | +``` |
| 128 | + |
| 129 | +```sh |
| 130 | +$ ovm ls --all # Вывод всех версий - установленных и доступных |
| 131 | + |
| 132 | +1.0.18 -> 1.0.18.101 -> C:\Users\NikitaGryzlov\AppData\Local\ovm\1.0.18 -> http://oscript.io/downloads/archive/1_0_18 |
| 133 | +1.0.19 -> 1.0.19.105 -> C:\Users\NikitaGryzlov\AppData\Local\ovm\1.0.19 -> http://oscript.io/downloads/archive/1_0_19 |
| 134 | +current -> 1.0.20.160 -> C:\Users\NikitaGryzlov\AppData\Local\ovm\current -> unknown |
| 135 | +dev -> 1.0.20.160 -> C:\Users\NikitaGryzlov\AppData\Local\ovm\dev -> http://oscript.io/downloads |
| 136 | +stable -> unknown -> not installed -> http://oscript.io/downloads |
| 137 | +``` |
| 138 | + |
| 139 | +### Запуск приложений в окружении конкретной версии |
| 140 | + |
| 141 | +ovm позволяет запускать приложения в окружении конкретной установленной версии OneScript. При этом происходит доустановка переменной окружения `PATH` к каталогу указанной версии. |
| 142 | + |
| 143 | +```sh |
| 144 | +$ ovm run 1.0.19 oscript -version # Выполнение команды oscript -version в окружении 1.0.19 |
| 145 | + |
| 146 | +1.0.19.105 |
| 147 | +``` |
| 148 | + |
| 149 | +```sh |
| 150 | +$ ovm run 1.0.19 where oscript # Вывод сторонней команды where в окружении 1.0.19 |
| 151 | + |
| 152 | +C:\Users\NikitaGryzlov\AppData\Local\ovm\1.0.19\bin\oscript.exe # Путь к 1.0.19 указывается раньше, чем путь к current, благодаря запуску ovm run |
| 153 | +C:\Users\NikitaGryzlov\AppData\Local\ovm\current\bin\oscript.exe |
| 154 | +``` |
| 155 | + |
| 156 | +### Получение пути к исполняемому файлу oscript |
| 157 | + |
| 158 | +```sh |
| 159 | +$ ovm which 1.0.19 |
| 160 | + |
| 161 | +C:\Users\NikitaGryzlov\AppData\Local\ovm\1.0.19\bin\oscript.exe |
| 162 | +``` |
| 163 | + |
| 164 | +## Вывод команды ovm |
| 165 | + |
| 166 | + |
6 | 167 | ``` |
7 | 168 | Приложение: ovm |
8 | | - OneScript Version Manager |
| 169 | + OneScript Version Manager v1.0.0 |
9 | 170 |
|
10 | 171 | Строка запуска: ovm [OPTIONS] КОМАНДА [аргументы...] |
11 | 172 |
|
12 | 173 | Опции: |
13 | 174 | -v, --version показать версию и выйти |
14 | 175 |
|
15 | 176 | Доступные команды: |
16 | | - install, i Установка OneScript указанной версии |
| 177 | + install, i Установить OneScript указанных версий |
17 | 178 | use, u Использовать OneScript указанной версии |
18 | | - uninstall, delete, d Удаление OneScript указанных версий |
19 | | - list, ls Вывести список установленных версий |
20 | | - run, r Запустить исполняемый файл в окружении указанной версии |
| 179 | + uninstall, delete, d Удалить OneScript указанных версий |
| 180 | + list, ls Вывести список установленных и/или доступных версий OneScript |
| 181 | + run, r Запустить исполняемый файл в окружении указанной версии OneScript |
21 | 182 | which, w Вывести путь к установленной версии OneScript |
| 183 | + migrate Поместить установленный системный OneScript под контроль ovm. Только для Windows |
22 | 184 |
|
23 | 185 | Для вывода справки по доступным командам наберите: ovm КОМАНДА --help |
24 | 186 | ``` |
0 commit comments