Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .bsl-language.server.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"parameters": {
"Typo": {
"minWordLength": 3,
"userWordsToIgnore": "Гитсинк"
"userWordsToIgnore": "автопоиск,Гитсинк,закоммитить,Коммитом,Коммите,Коммита,коммита,Коммитами,Репо,Сохр"
}
}
}
Expand Down
24 changes: 7 additions & 17 deletions src/cmd/gitsync.os
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
///////////////////////////////////////////////////////////////////
//
#Использовать cli
#Использовать cli
#Использовать tempfiles
#Использовать "../core"
#Использовать "."

Перем Лог;
Перем Плагины;
Перем ВерсияПлатформы;
Перем ВыводДополнительнойИнформации;
Перем ВременныйКаталогРаботы;
Перем ДоменПочты;
///////////////////////////////////////////////////////////////////////////////
Перем Лог; // Логгер
Перем ВерсияПлатформы; // Версия платформы
Перем ВыводДополнительнойИнформации; // Флаг включения вывода подробной информации
Перем ВременныйКаталогРаботы; // Временный каталог
Перем ДоменПочты; // Домент почты

Процедура ВыполнитьПриложение()

Expand Down Expand Up @@ -40,10 +36,6 @@
.ТСтрока()
.ВОкружении("GITSYNC_IB_CONNECTION GITSYNC_IBCONNECTION");

// Приложение.Опция("p plugins", "", "плагины к загрузке и исполнению (дополнительное ограничение)")
// .ТМассивСтрок()
// .ВОкружении("GITSYNC_RUN_PLUGINS");

Приложение.Опция("t tempdir", "", "путь к каталогу временных файлов")
.ВОкружении("GITSYNC_TEMP GITSYNC_TEMPDIR");

Expand All @@ -68,11 +60,9 @@
Приложение.ДобавитьКоманду("plugins p", "Управление плагинами gitsync",
Новый КомандаPlugins);

// Приложение.УстановитьДействиеПередВыполнением(ЭтотОбъект, "ПередВыполнениемКоманды"); // TODO: Расскоментировать при исправлении ошибки в cli

Приложение.Запустить(АргументыКоманднойСтроки);

КонецПроцедуры // ВыполнениеКоманды()
КонецПроцедуры

Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт

Expand Down
9 changes: 0 additions & 9 deletions src/cmd/Классы/КомандаPluginInstall.os
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,6 @@

Процедура ВыполнитьКоманду(Знач Команда) Экспорт

Если ПараметрыПриложения.ЭтоСборкаEXE() Тогда

Лог.Информация("Установка новых плагинов для собранного приложения в exe не доступна");

Возврат;

КонецЕсли;


ПакетыКУстановке = Команда.ЗначениеАргумента("NAME");
МассивФайловПлагинов = Команда.ЗначениеОпции("file");

Expand Down
2 changes: 1 addition & 1 deletion src/cmd/Классы/КомандаPlugins.os
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Команда.ДобавитьПодкоманду("list ls", "Вывод списка плагинов", Новый КомандаPluginList);
Команда.ДобавитьПодкоманду("install i", "Установка новых плагинов", Новый КомандаPluginInstall);
Команда.ДобавитьПодкоманду("enable e", "Активизация установленных плагинов", Новый КомандаPluginEnable);
Команда.ДобавитьПодкоманду("disable d", "Деактивизация установленных плагинов", Новый КомандаPluginDisable);
Команда.ДобавитьПодкоманду("disable d", "Деактивация установленных плагинов", Новый КомандаPluginDisable);
Команда.ДобавитьПодкоманду("clear c", "Очистка установленных плагинов", Новый КомандаPluginsClear);
Команда.ДобавитьПодкоманду("help h", "Вывод справки по выбранным плагинам", Новый КомандаPluginHelp);
Команда.ДобавитьПодкоманду("init", "Инициализация предустановленных плагинов", Новый КомандаPluginsInit);
Expand Down
8 changes: 0 additions & 8 deletions src/cmd/Классы/КомандаPluginsClear.os
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,6 @@

Процедура ВыполнитьКоманду(Знач Команда) Экспорт

Если ПараметрыПриложения.ЭтоСборкаEXE() Тогда

Лог.Информация("Очистка плагинов для собранного приложения в exe не доступна");

Возврат;

КонецЕсли;

УдалитьПредустановленныеПлагины = Команда.ЗначениеОпции("-a");

КаталогПлагинов = ПараметрыПриложения.КаталогПлагинов();
Expand Down
232 changes: 105 additions & 127 deletions src/cmd/Классы/КомандаUsage.os
Original file line number Diff line number Diff line change
Expand Up @@ -7,186 +7,164 @@
Перем Лог;

Процедура ОписаниеКоманды(Команда) Экспорт

Команда.Аргумент("COMMAND", "", "Команда для вывода подробностей использования").ТСтрока().Обязательный(Ложь);

КонецПроцедуры

Процедура ВыполнитьКоманду(Знач Команда) Экспорт

ИмяКоманды = Команда.ЗначениеАргумента("COMMAND");

ИмяКоманды = Команда.ЗначениеАргумента("COMMAND");
Если ПустаяСтрока(ИмяКоманды) Тогда
ВывестиОбщееИспользование();
Иначе
ВывестиИспользованиеКоманды(НРег(ИмяКоманды));
КонецЕсли;

КонецПроцедуры

Процедура ВывестиОбщееИспользование()

ТекстОбщегоОписания = "
| Общее описание сценария использования:
|
| Для начала выполнения синхронизации необходимо выполнить подготовку рабочей копии:
|
| I Порядок настройки:
|
| 1. Активизация нужных плагинов:
|
| активизация указанных плагинов
| > %1 plugins enable ИМЯПЛАГИНА1 ИМЯПЛАГИНА2
| активизация всех плагинов
| > %1 plugins enable -a
| интерактивный выбор плагинов
| > %1 plugins enable
|
| Подробные описание использования команды <plugins>:
|
| > %1 usage plugins
|
| 2. Настройка переменных окружения (можно пропустить и указывать в строке использования):
|
| Общие переменные окружения:
| *GITSYNC_WORKDIR - рабочий каталог для команд gitsync
| *GITSYNC_V8VERSION - маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.)
| *GITSYNC_TEMP - путь к каталогу временных файлов
| *GITSYNC_VERBOSE - вывод отладочной информации в процессе выполнения
|
| Дополнительные переменные окружения можно посмотреть
| в справке соответствующей команды
|
| II Порядок использования:
|
| 1. Создание рабочей копии (можно пропустить если уже есть):
|
| Инициализация или клонирование существующего git-репозитория и подготовка начальных данных:
| > %1 init
| или
| > %1 clone
|
| Подробные описание использования:
|
| > %1 usage init
| или
| > %1 usage clone
|
| 2. Установка уже синхронизированной версии (если требуется):
|
| > %1 setversion
|
| Подробное описание использования команды <setversion>:
|
| > %1 usage setversion
|
| 3. Выполнение синхронизации хранилища 1С с git репозиторием:
|
| > %1 sync
|
| Подробное описание использования команды <sync>:
|
| > %1 usage sync
|";

| Общее описание сценария использования:
|
| Для начала выполнения синхронизации необходимо выполнить подготовку рабочей копии:
|
| I Порядок настройки:
|
| 1. Активизация нужных плагинов:
|
| активизация указанных плагинов
| > %1 plugins enable ИМЯПЛАГИНА1 ИМЯПЛАГИНА2
| активизация всех плагинов
| > %1 plugins enable -a
| интерактивный выбор плагинов
| > %1 plugins enable
|
| Подробные описание использования команды <plugins>:
|
| > %1 usage plugins
|
| 2. Настройка переменных окружения (можно пропустить и указывать в строке использования):
|
| Общие переменные окружения:
| *GITSYNC_WORKDIR - рабочий каталог для команд gitsync
| *GITSYNC_V8VERSION - маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.)
| *GITSYNC_TEMP - путь к каталогу временных файлов
| *GITSYNC_VERBOSE - вывод отладочной информации в процессе выполнения
|
| Дополнительные переменные окружения можно посмотреть
| в справке соответствующей команды
|
| II Порядок использования:
|
| 1. Создание рабочей копии (можно пропустить если уже есть):
|
| Инициализация или клонирование существующего git-репозитория и подготовка начальных данных:
| > %1 init
| или
| > %1 clone
|
| Подробные описание использования:
|
| > %1 usage init
| или
| > %1 usage clone
|
| 2. Установка уже синхронизированной версии (если требуется):
|
| > %1 setversion
|
| Подробное описание использования команды <setversion>:
|
| > %1 usage setversion
|
| 3. Выполнение синхронизации хранилища 1С с git репозиторием:
|
| > %1 sync
|
| Подробное описание использования команды <sync>:
|
| > %1 usage sync
|";
ВывестиОписание(ТекстОбщегоОписания);

КонецПроцедуры

Процедура ВывестиИспользованиеКоманды(Знач ИмяКоманды)

ИмяКомандыСправки = "";

Если ИмяКоманды = "init"
или ИмяКоманды = "i" Тогда
ИЛИ ИмяКоманды = "i" Тогда
ИмяКомандыСправки = "init";
ИначеЕсли ИмяКоманды = "clone"
или ИмяКоманды = "c" Тогда
ИначеЕсли ИмяКоманды = "clone"
ИЛИ ИмяКоманды = "c" Тогда
ИмяКомандыСправки = "clone";
ИначеЕсли ИмяКоманды = "sync"
или ИмяКоманды = "s" Тогда
ИначеЕсли ИмяКоманды = "sync"
ИЛИ ИмяКоманды = "s" Тогда
ИмяКомандыСправки = "sync";
ИначеЕсли ИмяКоманды = "setversion"
или ИмяКоманды = "sv" Тогда
ИЛИ ИмяКоманды = "sv" Тогда
ИмяКомандыСправки = "set-version";
ИначеЕсли ИмяКоманды = "plugins"
или ИмяКоманды = "p" Тогда
ИначеЕсли ИмяКоманды = "plugins"
ИЛИ ИмяКоманды = "p" Тогда
ИмяКомандыСправки = "plugins";
Иначе
ИмяКомандыСправки = "usage";
КонецЕсли;

ВывестиОписаниеДляКоманды(ИмяКомандыСправки);

КонецПроцедуры

Процедура ВывестиОписание(Знач ТекстОписания)

ИтоговаяСправка = ТекстОписания;

МассивСтрокВывода = СтрРазделить(ИтоговаяСправка, Символы.ПС);

Для каждого СтрокаВывода Из МассивСтрокВывода Цикл
Если СтрНачинаетсяС(СокрЛП(Строкавывода), "*") Тогда
СтрокаВывода = СтрЗаменить(СтрокаВывода, "*", " ");
Консоль.ВывестиСтроку(Строкавывода);

ИначеЕсли СтрНачинаетсяС(СокрЛП(Строкавывода), ">") Тогда
Для Каждого СтрокаВывода Из МассивСтрокВывода Цикл
Если СтрНачинаетсяС(СокрЛП(Строкавывода), "*") Тогда
СтрокаВывода = СтрЗаменить(СтрокаВывода, "*", " ");
Консоль.ВывестиСтроку(Строкавывода);

ИначеЕсли СтрНачинаетсяС(СокрЛП(Строкавывода), ">") Тогда
Консоль.ВывестиСтроку(Строкавывода);
Иначе
Консоль.ВывестиСтроку(Строкавывода);
КонецЕсли;
КонецЦикла;

КонецПроцедуры

Процедура ВывестиОписаниеДляКоманды(Знач ИмяКоманды)

ИмяФайла = СтрШаблон("%1.md", ИмяКоманды);

Если ПараметрыПриложения.ЭтоСборкаEXE() Тогда

ЗагрузчикЗапакованныхФайловGitsync = Новый ЗагрузчикЗапакованныхФайловGitsync;
ТекстОписанияКоманды = ПрочитатьФайл(ЗагрузчикЗапакованныхФайловGitsync.ПолучитьПутьКФайлу(ИмяФайла));

Иначе

КаталогДокументации = ОбъединитьПути(ОбъединитьПути(ТекущийСценарий().Каталог, "..","..", ".."),"docs");
ТекстОписанияКоманды = ПрочитатьФайл(ОбъединитьПути(КаталогДокументации, ИмяФайла));

КонецЕсли;


КаталогДокументации = ОбъединитьПути(ОбъединитьПути(ТекущийСценарий().Каталог, "..", "..", ".."), "docs");
ТекстОписанияКоманды = ПрочитатьФайл(ОбъединитьПути(КаталогДокументации, ИмяФайла));

ВывестиОписание(ТекстОписанияКоманды);

КонецПроцедуры

Функция Инициализация()

СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;

Процедура Инициализация()

Лог = ПараметрыПриложения.Лог();

КонецФункции
КонецПроцедуры

Функция ПрочитатьФайл(Знач ИмяФайла)

Чтение = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.UTF8);
Рез = Чтение.Прочитать();
Чтение.Закрыть();

Возврат Рез;

КонецФункции // ПрочитатьФайл()

Функция ЦветаКонсоли() Экспорт

Цвета = Новый Структура;
// Цвета.Вставить("ЦветСписка", ЦветКонсоли.Желтый);
// Цвета.Вставить("ЦветКоманды", ЦветКонсоли.Зеленый);

Возврат Цвета;

Чтение = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.UTF8);
Рез = Чтение.Прочитать();
Чтение.Закрыть();
Возврат Рез;
КонецФункции

Инициализация();
Loading
Loading