|
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