|
14 | 14 | ДобавитьКомандуApp(Парсер);
|
15 | 15 | ДобавитьКомандуConfig(Парсер);
|
16 | 16 | ДобавитьКомандуList(Парсер);
|
| 17 | + ДобавитьКомандуVersion(Парсер); |
17 | 18 | ДобавитьКомандуHelp(Парсер);
|
18 | 19 | КонецПроцедуры
|
19 | 20 |
|
|
51 | 52 | Команда = Парсер.ОписаниеКоманды("install", "Выполнить установку. Если указано имя пакета, происходит установка из хаба или из файла. В обратном случае устанавливаются зависимости текущего пакета по файлу packagedef.");
|
52 | 53 | Парсер.ДобавитьПараметрФлагКоманды(Команда, "-all", "Установить все пакеты, зарегистрированные в хабе");
|
53 | 54 | Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-f", "Указать файл из которого нужно установить пакет");
|
| 55 | + Парсер.ДобавитьПараметрФлагКоманды(Команда, "-l", "Установить пакеты в локальный каталог oscript_modules"); |
54 | 56 | Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "ИмяПакета", "Имя пакета в хабе. Чтобы установить конкретную версию, используйте ИмяПакета@ВерсияПакета");
|
55 | 57 | Парсер.ДобавитьКоманду(Команда);
|
56 | 58 | КонецПроцедуры
|
|
73 | 75 |
|
74 | 76 | Процедура ДобавитьКомандуConfig(Знач Парсер)
|
75 | 77 | Команда = Парсер.ОписаниеКоманды("config", "Задать пользовательские настройки");
|
| 78 | + Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-winCreateBashLauncher","Создавать sh-скрипт запуска для пакетов приложений в среде Windows"); |
76 | 79 | Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "-proxyusedefault","Использовать ПроксиПоУмолчанию (системные настройки)");
|
77 | 80 | Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxyserver", "Адрес прокси");
|
78 | 81 | Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxyport", "Порт прокси");
|
|
88 | 91 | Парсер.ДобавитьКоманду(Команда);
|
89 | 92 | КонецПроцедуры
|
90 | 93 |
|
| 94 | +Процедура ДобавитьКомандуVersion(Знач Парсер) |
| 95 | + Команда = Парсер.ОписаниеКоманды("version", "Вывести версию продукта"); |
| 96 | + Парсер.ДобавитьКоманду(Команда); |
| 97 | +КонецПроцедуры |
| 98 | + |
91 | 99 | Процедура ДобавитьКомандуHelp(Знач Парсер) Экспорт
|
92 | 100 | Команда = Парсер.ОписаниеКоманды("help", "Справка по командам");
|
93 | 101 | Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "ИмяКоманды", "Имя команды по которой надо получить справку");
|
94 | 102 | Парсер.ДобавитьКоманду(Команда);
|
95 | 103 | КонецПроцедуры
|
96 | 104 |
|
97 | 105 | Процедура ВыполнитьКоманду(Знач ПараметрыКоманды) Экспорт
|
| 106 | + |
| 107 | + Если ПараметрыКоманды.Команда <> "version" И ПараметрыКоманды.Команда <> "help" Тогда |
| 108 | + ВывестиВерсию(); |
| 109 | + КонецЕсли; |
98 | 110 |
|
99 | 111 | ЗначенияПараметров = ПараметрыКоманды.ЗначенияПараметров;
|
100 | 112 | Если ПараметрыКоманды.Команда = "build" Тогда
|
|
114 | 126 | ИначеЕсли ПараметрыКоманды.Команда = "config" Тогда
|
115 | 127 | НастройкиПриложения.СохранитьНастройки(ЗначенияПараметров);
|
116 | 128 | ИначеЕсли ПараметрыКоманды.Команда = "list" Тогда
|
117 |
| - ВывестиСписокПакетов(ЗначенияПараметров); |
| 129 | + ВывестиСписокПакетов(ЗначенияПараметров); |
| 130 | + ИначеЕсли ПараметрыКоманды.Команда = "version" Тогда |
| 131 | + ВывестиВерсиюКратко(); |
118 | 132 | ИначеЕсли ПараметрыКоманды.Команда = "help" Тогда
|
119 | 133 | ВывестиСправку(ЗначенияПараметров);
|
120 | 134 | КонецЕсли;
|
121 |
| - |
| 135 | + |
122 | 136 | КонецПроцедуры
|
123 | 137 |
|
124 | 138 | /////////////////////////////////////////////////////////////////////////
|
125 | 139 | // Реализация команд
|
126 | 140 |
|
127 | 141 | Процедура УстановитьПакет(Знач ЗначенияПараметров) Экспорт
|
128 |
| - |
| 142 | + |
129 | 143 | Установщик = Новый УстановкаПакета;
|
| 144 | + |
| 145 | + Если ЗначенияПараметров["-l"] Тогда |
| 146 | + Установщик.УстановитьРежимУстановкиПакетов(РежимУстановкиПакетов.Локально); |
| 147 | + Иначе |
| 148 | + Установщик.УстановитьРежимУстановкиПакетов(РежимУстановкиПакетов.Глобально); |
| 149 | + КонецЕсли; |
| 150 | + |
130 | 151 | Если ЗначенияПараметров["-all"] Тогда
|
131 | 152 | Установщик.УстановитьВсеПакетыИзОблака();
|
132 | 153 | ИначеЕсли ЗначенияПараметров["-f"] = Неопределено И ЗначенияПараметров["ИмяПакета"] = Неопределено Тогда
|
|
136 | 157 | Иначе
|
137 | 158 | Установщик.УстановитьПакетИзОблака(ЗначенияПараметров["ИмяПакета"]);
|
138 | 159 | КонецЕсли;
|
139 |
| - |
| 160 | + |
140 | 161 | КонецПроцедуры
|
141 | 162 |
|
142 | 163 | Процедура ВыполнитьСборку(Знач КаталогИсходников, Знач ФайлМанифеста, Знач ВыходнойКаталог) Экспорт
|
143 |
| - |
| 164 | + |
144 | 165 | Сборщик = Новый СборщикПакета();
|
145 | 166 | Сборщик.СобратьПакет(КаталогИсходников, ФайлМанифеста, ВыходнойКаталог);
|
146 |
| - |
| 167 | + |
147 | 168 | КонецПроцедуры
|
148 | 169 |
|
149 | 170 | Процедура ПодготовитьКаталогПроекта(Знач ВыходнойКаталог) Экспорт
|
150 |
| - |
| 171 | + |
151 | 172 | Сборщик = Новый СборщикПакета();
|
152 | 173 | Сборщик.ПодготовитьКаталогПроекта(ВыходнойКаталог);
|
153 |
| - |
| 174 | + |
154 | 175 | КонецПроцедуры
|
155 | 176 |
|
156 | 177 | Процедура ВыполнитьЗадачу(Знач ИмяЗадачи, Знач ПараметрыЗадачи)
|
157 | 178 |
|
158 | 179 | ИсполнительЗадач = Новый ИсполнительЗадач();
|
159 | 180 | ИсполнительЗадач.ВыполнитьЗадачу(ИмяЗадачи, ПараметрыЗадачи);
|
160 |
| - |
| 181 | + |
161 | 182 | КонецПроцедуры
|
162 | 183 |
|
163 | 184 | Процедура ОбновитьПакет(Знач ЗначенияПараметров) Экспорт
|
164 |
| - |
| 185 | + |
165 | 186 | Установщик = Новый УстановкаПакета;
|
166 | 187 | Если ЗначенияПараметров["-all"] Тогда
|
167 | 188 | Установщик.ОбновитьУстановленныеПакеты();
|
|
170 | 191 | Иначе
|
171 | 192 | Установщик.ОбновитьПакетИзОблака(ЗначенияПараметров["ИмяПакета"]);
|
172 | 193 | КонецЕсли;
|
173 |
| - |
| 194 | + |
174 | 195 | КонецПроцедуры
|
175 | 196 |
|
176 | 197 | Процедура СоздатьСкриптЗапуска(Знач ИмяСкрипта, Знач Каталог, Знач ИмяФайлаЗапуска) Экспорт
|
177 | 198 | Если ИмяСкрипта = Неопределено Тогда
|
178 | 199 | ВызватьИсключение "Не указано имя файла скрипта";
|
179 | 200 | КонецЕсли;
|
180 |
| - |
| 201 | + |
181 | 202 | ФайлСкрипта = Новый Файл(ИмяСкрипта);
|
182 | 203 | ПолноеИмяСкрипта = ФайлСкрипта.ПолноеИмя;
|
183 | 204 | Если Не ФайлСкрипта.Существует() Тогда
|
|
188 | 209 | ПолноеИмяСкрипта = ФайлСкрипта.ПолноеИмя;
|
189 | 210 | КонецЕсли;
|
190 | 211 | КонецЕсли;
|
191 |
| - |
| 212 | + |
192 | 213 | Если Не ФайлСкрипта.ЭтоФайл() Тогда
|
193 | 214 | ВызватьИсключение "Указанный скрипт """ + ПолноеИмяСкрипта + """ не является файлом";
|
194 | 215 | КонецЕсли;
|
195 |
| - |
| 216 | + |
196 | 217 | Если Каталог = Неопределено Тогда
|
197 | 218 | Каталог = КаталогПрограммы();
|
198 | 219 | КонецЕсли;
|
199 |
| - |
| 220 | + |
200 | 221 | ФайлКаталога = Новый Файл(Каталог);
|
201 | 222 | Каталог = ФайлКаталога.ПолноеИмя;
|
202 | 223 | Если ФайлКаталога.Существует() Тогда
|
|
209 | 230 | ВызватьИсключение "Не удалось создать каталог """ + Каталог + """";
|
210 | 231 | КонецЕсли;
|
211 | 232 | КонецЕсли;
|
212 |
| - |
| 233 | + |
213 | 234 | ИмяСкриптаЗапуска = ?(ИмяФайлаЗапуска = Неопределено, ФайлСкрипта.ИмяБезРасширения, ИмяФайлаЗапуска);
|
214 | 235 | Установщик = Новый УстановкаПакета;
|
215 | 236 | Установщик.СоздатьСкриптЗапуска(ИмяСкриптаЗапуска, ПолноеИмяСкрипта, Каталог);
|
216 |
| - |
| 237 | + |
217 | 238 | КонецПроцедуры
|
218 | 239 |
|
219 | 240 | Процедура ВывестиСписокПакетов(Знач ЗначенияПараметров)
|
220 | 241 |
|
221 | 242 | ТихийРежим = ЗначенияПараметров["-q"];
|
222 |
| - |
| 243 | + |
223 | 244 | Если ЗначенияПараметров["-remote"] Тогда
|
224 | 245 | ТекстСообщения = СтрШаблон("Пакеты в хабе:");
|
225 | 246 | КэшПакетовВХабе = Новый КэшПакетовХаба();
|
226 | 247 | УстановленныеПакеты = КэшПакетовВХабе.ПолучитьПакетыХаба();
|
227 | 248 | Иначе
|
228 |
| - |
| 249 | + |
229 | 250 | ПутьККаталогуПакетов = ПолучитьЗначениеСистемнойНастройки("lib.system");
|
230 | 251 | ТекстСообщения = СтрШаблон("Пакеты в системном каталоге библиотек <%1>:", ПутьККаталогуПакетов);
|
231 |
| - |
| 252 | + |
232 | 253 | КэшУстановленныхПакетов = Новый КэшУстановленныхПакетов();
|
233 | 254 | УстановленныеПакеты = КэшУстановленныхПакетов.ПолучитьУстановленныеПакеты();
|
234 | 255 | КонецЕсли;
|
235 |
| - |
| 256 | + |
236 | 257 | Если НЕ ТихийРежим Тогда
|
237 |
| - Сообщить(ТекстСообщения); |
| 258 | + Сообщить(ТекстСообщения); |
238 | 259 | КонецЕсли;
|
239 |
| - |
| 260 | + |
240 | 261 | Для Каждого УстановленныйПакет Из УстановленныеПакеты Цикл
|
241 | 262 | СтрокаСообщения = УстановленныйПакет.Ключ;
|
242 | 263 | Если ТипЗнч(УстановленныйПакет.Значение) = Тип("ОписаниеПакета") Тогда
|
|
248 | 269 |
|
249 | 270 | КонецПроцедуры
|
250 | 271 |
|
| 272 | +Процедура ВывестиВерсиюКратко() |
| 273 | + Сообщить(Константы.ВерсияПродукта); |
| 274 | +КонецПроцедуры |
| 275 | + |
| 276 | +Процедура ВывестиВерсию() |
| 277 | + Сообщить("OneScript Package Manager v" + Константы.ВерсияПродукта); |
| 278 | + Сообщить(""); |
| 279 | +КонецПроцедуры |
| 280 | + |
251 | 281 | Процедура ВывестиСправку(Знач ЗначенияПараметров)
|
252 | 282 | Если ЗначенияПараметров["ИмяКоманды"] = Неопределено Тогда
|
253 | 283 | ВывестиСправкуПоКомандам();
|
|
257 | 287 | КонецПроцедуры
|
258 | 288 |
|
259 | 289 | Процедура ВывестиСправкуПоКомандам() Экспорт
|
260 |
| - |
| 290 | + |
261 | 291 | Парсер = Новый ПарсерАргументовКоманднойСтроки;
|
262 | 292 | ДобавитьОписанияКоманд(Парсер);
|
263 |
| - |
| 293 | + |
264 | 294 | ВозможныеКоманды = Парсер.СправкаВозможныеКоманды();
|
265 |
| - Сообщить("OneScript Package Manager |
266 |
| - |Возможные команды:"); |
267 |
| - |
| 295 | + ВывестиВерсию(); |
| 296 | + Сообщить("Возможные команды:"); |
| 297 | + |
268 | 298 | МаксШирина = 0;
|
269 | 299 | Поле = " ";
|
270 | 300 | Для Каждого Команда Из ВозможныеКоманды Цикл
|
|
273 | 303 | МаксШирина = ТекШирина;
|
274 | 304 | КонецЕсли;
|
275 | 305 | КонецЦикла;
|
276 |
| - |
| 306 | + |
277 | 307 | Для Каждого Команда Из ВозможныеКоманды Цикл
|
278 | 308 | Сообщить(" " + Лев(Команда.Команда + Поле, МаксШирина + 2) + "- " + Команда.Пояснение);
|
279 | 309 | КонецЦикла;
|
280 |
| - |
| 310 | + |
281 | 311 | Сообщить("Наберите opm help <команда>, чтобы вывести справку по команде");
|
282 |
| - |
| 312 | + |
283 | 313 | КонецПроцедуры
|
284 | 314 |
|
285 | 315 | Процедура ВывестиСправкуПоКоманде(Знач ИмяКоманды)
|
286 |
| - |
| 316 | + |
287 | 317 | Парсер = Новый ПарсерАргументовКоманднойСтроки;
|
288 | 318 | ДобавитьОписанияКоманд(Парсер);
|
289 |
| - |
| 319 | + |
290 | 320 | ВозможныеКоманды = Парсер.СправкаВозможныеКоманды();
|
291 | 321 | ОписаниеКоманды = ВозможныеКоманды.Найти(ИмяКоманды, "Команда");
|
292 | 322 | Если ОписаниеКоманды = Неопределено Тогда
|
293 | 323 | Сообщить("Команда отсуствует: " + ИмяКоманды);
|
294 | 324 | Возврат;
|
295 | 325 | КонецЕсли;
|
296 |
| - |
| 326 | + |
297 | 327 | Сообщить("" + ОписаниеКоманды.Команда + " - " + ОписаниеКоманды.Пояснение);
|
298 | 328 | Сообщить("Параметры:");
|
299 | 329 | Для Каждого СтрПараметр Из ОписаниеКоманды.Параметры Цикл
|
|
303 | 333 | Сообщить(СтрШаблон(" %1 - %2", СтрПараметр.Имя, СтрПараметр.Пояснение));
|
304 | 334 | КонецЕсли;
|
305 | 335 | КонецЦикла;
|
306 |
| - |
| 336 | + |
307 | 337 | КонецПроцедуры
|
308 | 338 |
|
309 | 339 | /////////////////////////////////////////////////////////////////////
|
|
0 commit comments