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