forked from vanessa-opensource/ovm
-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
258 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
.АдресАвтора("[email protected]") | ||
.Описание("OneScript Version Manager") | ||
.ВерсияСреды("1.0.20") | ||
// .ВключитьФайл("src") | ||
.ЗависитОт("json") | ||
.ЗависитОт("1commands", "1.3.2") | ||
.ЗависитОт("fluent", "0.3.1") | ||
.ЗависитОт("fs") | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
#Использовать "../../core" | ||
|
||
Процедура ОписаниеКоманды(КомандаПриложения) Экспорт | ||
|
||
КомандаПриложения.Аргумент( | ||
"NAME", | ||
, | ||
"Название опции") | ||
.ТСтрока(); | ||
|
||
КомандаПриложения.Аргумент( | ||
"VALUE", | ||
, | ||
"Значение опции (массив строк)") | ||
.ТСтрока(); | ||
|
||
КонецПроцедуры | ||
|
||
// Обработчик выполнения команды | ||
// | ||
// Параметры: | ||
// КомандаПриложения - КомандаПриложения - Выполняемая команда | ||
// | ||
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт | ||
Имя = КомандаПриложения.ЗначениеАргумента("NAME"); | ||
Значение = КомандаПриложения.ЗначениеАргумента("VALUE"); | ||
|
||
Хранилище = ПараметрыOVM.ХранилищеНастроек(); | ||
Хранилище.Установить(Имя, Значение); | ||
Хранилище.Записать(); | ||
|
||
КонецПроцедуры |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
#Использовать fs | ||
#Использовать logos | ||
|
||
Перем ЗначенияНастроек; | ||
Перем Индекс; | ||
Перем ПутьКФайлу; | ||
|
||
Перем Лог; | ||
|
||
Процедура ПриСозданииОбъекта(Знач ИмяФайлаНастроек) | ||
ПутьКФайлу = ИмяФайлаНастроек; | ||
Лог = Логирование.ПолучитьЛог("oscript.app.ovm"); | ||
ПрочитатьНастройки(); | ||
КонецПроцедуры | ||
|
||
Функция Получить(Знач Имя) Экспорт | ||
Лог.Отладка("Запрошено значение %1", Имя); | ||
НомерСтроки = Индекс[Имя]; | ||
Если НомерСтроки = Неопределено Тогда | ||
Возврат Неопределено; | ||
КонецЕсли; | ||
Значение = ЗначенияНастроек[НомерСтроки].Значение; | ||
Лог.Отладка("Получено значение %1=%2", Имя, Значение); | ||
Возврат Значение; | ||
КонецФункции | ||
|
||
Процедура Установить(Знач Имя, Знач Значение) Экспорт | ||
|
||
РегулярноеВыражение = Новый РегулярноеВыражение("[A-Za-z0-9\.]+"); | ||
РегулярноеВыражение.Многострочный = Ложь; | ||
Если Не РегулярноеВыражение.Совпадает(Имя) Тогда | ||
ВызватьИсключение "Некорректно задано имя параметра"; | ||
КонецЕсли; | ||
|
||
НомерСтроки = Индекс[Имя]; | ||
Если НомерСтроки = Неопределено Тогда | ||
НомерСтроки = ЗначенияНастроек.Количество(); | ||
Индекс[Имя] = НомерСтроки; | ||
СтрокаНастроек = ЗначенияНастроек.Добавить(); | ||
СтрокаНастроек.Имя = Имя; | ||
КонецЕсли; | ||
|
||
ЗначенияНастроек[НомерСтроки].Значение = Значение; | ||
КонецПроцедуры | ||
|
||
Процедура Записать() Экспорт | ||
|
||
ФайлОпций = Новый Файл(ПутьКФайлу); | ||
ФС.ОбеспечитьКаталог(ФайлОпций.Путь); | ||
|
||
ТД = Новый ТекстовыйДокумент(); | ||
Для Каждого Настройка Из ЗначенияНастроек Цикл | ||
|
||
Если ЗначениеЗаполнено(Настройка.Имя) Тогда | ||
ТД.ДобавитьСтроку(СтрШаблон("%1=%2", Настройка.Имя, Настройка.Значение)); | ||
Иначе | ||
ТД.ДобавитьСтроку(Настройка.Содержимое); | ||
КонецЕсли; | ||
КонецЦикла; | ||
|
||
ТД.Записать(ПутьКФайлу); | ||
|
||
КонецПроцедуры | ||
|
||
// ------------------------------------------------------ | ||
Процедура ПрочитатьНастройки() | ||
|
||
Если Не ФС.ФайлСуществует(ПутьКФайлу) Тогда | ||
Лог.Отладка("Отсутствует файл настроек %1", ПутьКФайлу); | ||
Возврат; | ||
КонецЕсли; | ||
|
||
ТД = Новый ТекстовыйДокумент(); | ||
ТД.Прочитать(ПутьКФайлу); | ||
|
||
Лог.Отладка("Прочитан файл настроек %1", ПутьКФайлу); | ||
Для Сч = 1 По ТД.КоличествоСтрок() Цикл | ||
СтрокаНастроек = ТД.ПолучитьСтроку(Сч); | ||
Если ПустаяСтрока(СтрокаНастроек) или Лев(СтрокаНастроек, 1) = "#" Тогда | ||
ДобавитьНеактивнуюСтроку(СтрокаНастроек); | ||
Продолжить; | ||
КонецЕсли; | ||
|
||
Поз = СтрНайти(СтрокаНастроек, "="); | ||
Если Поз = 0 Тогда | ||
ДобавитьНеактивнуюСтроку(СтрокаНастроек); | ||
Продолжить; | ||
КонецЕсли; | ||
|
||
Ключ = СокрЛП(Лев(СтрокаНастроек, Поз - 1)); | ||
Значение = СокрЛП(Сред(СтрокаНастроек, Поз + 1)); | ||
|
||
Попытка | ||
Установить(Ключ, Значение); | ||
Исключение | ||
// сбойный ключ | ||
Лог.Ошибка("Ключ настроек %1 некорректен", Ключ); | ||
ДобавитьНеактивнуюСтроку(СтрокаНастроек); | ||
КонецПопытки; | ||
КонецЦикла; | ||
|
||
КонецПроцедуры | ||
|
||
Процедура ДобавитьНеактивнуюСтроку(Знач Содержимое) | ||
СтрокаНастроек = ЗначенияНастроек.Добавить(); | ||
СтрокаНастроек.Содержимое = Содержимое; | ||
КонецПроцедуры | ||
|
||
// ------------------------------------------------------ | ||
ЗначенияНастроек = Новый ТаблицаЗначений(); | ||
ЗначенияНастроек.Колонки.Добавить("Имя"); | ||
ЗначенияНастроек.Колонки.Добавить("Значение"); | ||
ЗначенияНастроек.Колонки.Добавить("Содержимое"); | ||
|
||
Индекс = Новый Соответствие(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters