Skip to content

Commit fe3acab

Browse files
authored
Merge pull request #6 from khorevaa/use-lib-cli
Полный рефакторинг приложения и библиотеки
2 parents 4ed6e4b + beb1069 commit fe3acab

File tree

84 files changed

+4707
-3803
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+4707
-3803
lines changed

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1-
1+
bin\*
22
tests\.xml
33

44
exec\.log
55

66
bdd-log\.xml
77

8+
.enabled-plugins
9+
coverage/*
10+
811
*.ospx
912
oscript_modules/
13+
src/cmd/oscript.cfg

.gitsync/enabled-pluings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+


.travis.yml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
language: generic
2+
3+
sudo: required
4+
5+
notifications:
6+
email: false
7+
8+
services:
9+
- docker
10+
11+
before_install:
12+
# Load cached docker images
13+
- if [[ -d $HOME/docker ]]; then ls $HOME/docker/*.tar.gz | xargs -I {file} sh -c "zcat {file} | docker load"; fi
14+
15+
before_cache:
16+
# Save tagged docker images
17+
- >
18+
mkdir -p $HOME/docker && docker images -a --filter='dangling=false' --format '{{.Repository}}:{{.Tag}} {{.ID}}'
19+
| xargs -n 2 -t sh -c 'test -e $HOME/docker/$1.tar.gz || docker save $0 | gzip -2 > $HOME/docker/$1.tar.gz'
20+
21+
install:
22+
- docker pull harmit/ci-image
23+
24+
env:
25+
global:
26+
- GIT_EMAIL=ci@mail
27+
- GIT_NAME=ci
28+
- CHANNEL=dev
29+
- PACKAGE_NAME=gitsync
30+
matrix:
31+
- OSCRIPT_VERSION=1_0_19
32+
- OSCRIPT_VERSION=1_0_20
33+
- OSCRIPT_VERSION=night-build
34+
matrix:
35+
allow_failures:
36+
- env: OSCRIPT_VERSION=night-build
37+
38+
script:
39+
- docker version
40+
- docker run -it -v $(pwd):/work_dir harmit/ci-image sh -c 'cd /work_dir; sh /work_dir/travis-ci.sh; exit' | tee /tmp/test.log
41+
- grep 'Результат прогона тестов <Да>' /tmp/test.log
42+
after_success:
43+
# - bash <(curl -s https://codecov.io/bash)
44+
- ./sonar-qube.sh
45+
46+
cache:
47+
directories:
48+
- '$HOME/.m2/repository'
49+
- '$HOME/.sonar/cache'
50+
- '$HOME/docker'
51+
jobs:
52+
include:
53+
- stage: Сборка и публикация github & hub.oscript.io
54+
script: skip
55+
before_deploy:
56+
- docker run -it -v $(pwd):/work_dir evilbeaver/onescript:1.0.19 sh -c 'cd /work_dir; opm build ./ ; exit'
57+
deploy:
58+
- provider: releases
59+
api_key: "$GITHUB_OAUTH_TOKEN"
60+
file_glob: true
61+
file: $PACKAGE_NAME*.ospx
62+
skip_cleanup: true
63+
on:
64+
branch: master
65+
tags: true
66+

.vscode/launch.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
// Используйте IntelliSense, чтобы узнать о возможных атрибутах.
3+
// Наведите указатель мыши, чтобы просмотреть описания существующих атрибутов.
4+
// Для получения дополнительной информации посетите: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"name": "Отладка 1Script",
9+
"type": "oscript",
10+
"request": "launch",
11+
"program": "${file}",
12+
"args": [],
13+
"cwd": "${workspaceRoot}",
14+
"runtimeExecutable": "/usr/bin/oscript",
15+
"debugPort": 2801,
16+
"protocol": "internal"
17+
}
18+
]
19+
}

TODO

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Добавить чистку кеша Хранилища 1С по отдельному флагу (или подключаемому плагину)

bin/zlib1.dll

-58.5 KB
Binary file not shown.

build_packagedef

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
#Использовать logos
2+
Перем Лог;
3+
4+
Процедура ПередСборкой(Знач РабочийКаталог) Экспорт
5+
6+
Лог.Информация("Установка локальных зависимостей библиотек");
7+
КомандаOpm = Новый Команда;
8+
9+
КомандаOpm.УстановитьКоманду("opm");
10+
КомандаOpm.ДобавитьПараметр("install -l");
11+
12+
КодВозврата = КомандаOpm.Исполнить();
13+
14+
Если КодВозврата <> 0 Тогда
15+
ВызватьИсключение КомандаOpm.ПолучитьВывод();
16+
КонецЕсли;
17+
Лог.Информация("Настройка локальных библиотек");
18+
19+
ПутьКФайлуЗагрузчику = ОбъединитьПути(РабочийКаталог, "oscript_modules", "package-loader.os");
20+
ШаблонныйФайлЗагрузчик = ОбъединитьПути(РабочийКаталог, "templates", "package-loader.os");
21+
ФайлЗагрузчик = Новый Файл(ПутьКФайлуЗагрузчику);
22+
Если Не ФайлЗагрузчик.Существует() Тогда
23+
КопироватьФайл(ШаблонныйФайлЗагрузчик, ПутьКФайлуЗагрузчику);
24+
Лог.Информация("Добавлен файл загрузки локальных библиотек");
25+
КонецЕсли;
26+
27+
ПутьКФайлуНастройкиСкрипта = ОбъединитьПути(РабочийКаталог, "src", "cmd", "oscript.cfg");
28+
ШаблонныйФайлНастройкиСкрипта = ОбъединитьПути(РабочийКаталог, "templates", "oscript.cfg");
29+
ФайлНастройкиСкрипта= Новый Файл(ПутьКФайлуНастройкиСкрипта);
30+
Если Не ФайлНастройкиСкрипта.Существует() Тогда
31+
КопироватьФайл(ШаблонныйФайлНастройкиСкрипта, ПутьКФайлуНастройкиСкрипта);
32+
Лог.Информация("Добавлен файл настройки запуска");
33+
КонецЕсли;
34+
35+
КонецПроцедуры
36+
37+
Процедура ПриСборке(Знач РабочийКаталог, Знач АрхивПакета) Экспорт
38+
39+
КонецПроцедуры
40+
41+
Процедура ПослеСборки(Знач РабочийКаталог, Знач ПутьКФайлуПакета) Экспорт
42+
43+
ПутьКФайлуНастройкиСкрипта = ОбъединитьПути(РабочийКаталог, "src", "cmd", "oscript.cfg");
44+
ФайлНастройкиСкрипта= Новый Файл(ПутьКФайлуНастройкиСкрипта);
45+
Если ФайлНастройкиСкрипта.Существует() Тогда
46+
УдалитьФайлы(ПутьКФайлуНастройкиСкрипта);
47+
КонецЕсли;
48+
49+
КонецПроцедуры
50+
51+
Лог = Логирование.ПолучитьЛог(ПараметрыСистемыOpm.ИмяЛогаСистемы());
52+
53+
Описание.Имя("gitsync")
54+
.Версия("3.0.0-sc")
55+
.ВерсияСреды("1.0.18")
56+
.ВключитьФайл("src")
57+
.ВключитьФайл("oscript_modules")
58+
.ВключитьФайл("plugins")
59+
.ВключитьФайл("docs")
60+
//.ВключитьФайл("features")
61+
//.ВключитьФайл("bin")
62+
//.ВключитьФайл("config-example.xml")
63+
//.ВключитьФайл("config-example.json")
64+
.ВключитьФайл("readme.md")
65+
.ИсполняемыйФайл("src/cmd/gitsync.os");

config-example.json

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
{
2+
"gitsync-options":
3+
{
4+
"global":
5+
{
6+
"-email": "server.com",
7+
"-v8version": "1cv8.exe",
8+
"-plugins":
9+
[
10+
"pull",
11+
"push",
12+
"vendorUpload",
13+
"smart-tags",
14+
"increment"
15+
],
16+
"flags":
17+
{
18+
"-limit": 5,
19+
"--storage-user": "Администратор"
20+
}
21+
},
22+
"repositories" : [
23+
{
24+
"name" : "test",
25+
"git-local-path": "путь1",
26+
"git-remote": "адрес1",
27+
"v8-storage-dir": "каталог1",
28+
"-plugins":
29+
[
30+
"pull",
31+
"push",
32+
"vendorUpload",
33+
"smart-tags",
34+
"increment"
35+
]
36+
,
37+
"flags": {
38+
"-limit": 5,
39+
"--storage-user": "Администратор"
40+
}
41+
},
42+
{
43+
"name" : "test2",
44+
"git-local-path": "путь2",
45+
"git-remote": "адрес2",
46+
"v8-storage-dir": "каталог2",
47+
"-plugins":
48+
[
49+
"pull",
50+
"push",
51+
"vendorUpload",
52+
"smart-tags",
53+
"increment"
54+
]
55+
,
56+
"flags": {
57+
"-limit": 5,
58+
"--storage-user": "Администратор"
59+
}
60+
}
61+
]
62+
}
63+
}

docs/clone.md

Whitespace-only changes.

docs/init.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
# Подробное описание использования команды <init>
2+
3+
init (синоним i) - инициализация нового хранилища git и наполнение его данными из хранилища 1С
4+
5+
> Подробную справку по параметрам см. gitsync init --help
6+
7+
--------------
8+
### Справка по использованию команды:
9+
```
10+
Команда: init, i
11+
Инициализация структуры нового хранилища git. Подготовка к синхронизации
12+
13+
Строка запуска: gitsync init [OPTIONS] PATH [WORKDIR]
14+
15+
Аргументы:
16+
PATH Путь к хранилищу конфигурации 1С. (env $GITSYNC_STORAGE_PATH)
17+
WORKDIR Адрес локального репозитория GIT или каталог исходников внутри локальной копии git-репозитария. По умолчанию текущий каталог (env $GITSYNC_WORKDIR)
18+
19+
Параметры:
20+
-u, --storage-user пользователь хранилища конфигурации (env $GITSYNC_STORAGE_USER) (по умолчанию Администратор)
21+
-p, --storage-pwd пароль пользователя хранилища конфигурации (env $GITSYNC_STORAGE_PASSWORD, $GITSYNC_STORAGE_PWD)
22+
```
23+
--------------
24+
### Глобальные переменные окружения
25+
| Имя | Описание |
26+
|---------------------|--------------------------------------------------------|
27+
| `GITSYNC_V8VERSION` | маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.) |
28+
| `GITSYNC_VERSOBE` | вывод отладочной информация в процессе выполнении |
29+
| `GITSYNC_TEMP` | путь к каталогу временных файлов |
30+
| `GITSYNC_EMAIL` | домен почты для пользователей git |
31+
32+
--------------
33+
### Переменные окружения команды
34+
35+
| Имя | Описание |
36+
|----------------------------|--------------------------------------------|
37+
| `GITSYNC_WORKDIR` | рабочий каталог для команды |
38+
| `GITSYNC_STORAGE_PATH` | путь к хранилищу конфигурации 1С. |
39+
| `GITSYNC_STORAGE_USER` | пользователь хранилища конфигурации |
40+
| `GITSYNC_STORAGE_PASSWORD` | пароль пользователя хранилища конфигурации |
41+
--------------
42+
### Значения по умолчанию:
43+
| | |
44+
|--------------------|------------------------------|
45+
| WORKDIR | текущая рабочая директория |
46+
| -u, --storage-user | пользователь `Администратор` |
47+
48+
--------------
49+
## Примеры, использования
50+
***
51+
* Простое использование
52+
53+
`gitsync init C:/Хранилище_1С/ C:/GIT/src`
54+
55+
Данная команда создаст новый репозиторий git в каталоге `C:/GIT/src` из хранилища 1С по пути `C:/Хранилище_1С/`
56+
***
57+
* Указание конкретной версии платформы
58+
59+
`gitsync --v8version=8.3.9 init C:/Хранилище_1С/ C:/GIT/src`
60+
61+
Данная команда создаст новый репозиторий git в каталоге `C:/GIT/src` из хранилища 1С по пути `C:/Хранилище_1С/`
62+
Для работы будет использоватьcя платформа 8.3.9.xxxx
63+
***
64+
* Указание вывода отладочных логов
65+
66+
`gitsync --verbose init C:/Хранилище_1С/ C:/GIT/src`
67+
или
68+
`gitsync -v init C:/Хранилище_1С/ C:/GIT/src`
69+
70+
Данная команда создаст новый репозиторий git в каталоге `C:/GIT/src` из хранилища 1С по пути `C:/Хранилище_1С/`
71+
После указания будет выводиться дополнительные отладочные логи с признаком `Отладка`
72+
***
73+
* Указание каталога временных файлов при работе приложения
74+
75+
`gitsync --tempdir=./temp_sync/ init C:/Хранилище_1С/ C:/GIT/src`
76+
или
77+
`gitsync -t ./temp_sync/ init C:/Хранилище_1С/ C:/GIT/src`
78+
79+
Данная команда создаст новый репозиторий git в каталоге `C:/GIT/src` из хранилища 1С по пути `C:/Хранилище_1С/`
80+
Для работы будет использоватьcя каталог временных файлов `./temp_sync/`
81+
***
82+
* Инициализация в текущем рабочем каталоге,
83+
84+
> переменная окружения **`GITSYNC_WORKDIR`** не должна быть задана
85+
86+
```shell
87+
cd C:/work_dir/
88+
gitsync init C:/Хранилище_1С/
89+
```
90+
Данная команда создаст новый репозиторий git в каталоге `C:/work_dir/` из хранилища 1С по пути `C:/Хранилище_1С/`
91+
***
92+
* Инициализация в с указанием пользователя и пароля.
93+
94+
```shell
95+
gitsync init --storage-user Admin --storage-pwd=Secret C:/Хранилище_1С/ C:/work_dir/
96+
```
97+
Данная команда создаст новый репозиторий git в каталоге `C:/work_dir/` из хранилища 1С по пути `C:/Хранилище_1С/`
98+
***
99+
* Использование синонимов (короткая версия предыдущего примера)
100+
101+
```shell
102+
gitsync i -uAdmin -p=Secret C:/Хранилище_1С/ C:/work_dir/
103+
```
104+
Данная команда создаст новый репозиторий git в каталоге `C:/work_dir/` из хранилища 1С по пути `C:/Хранилище_1С/`
105+
***
106+
* Использование только переменных окружения
107+
108+
linux:
109+
```shell
110+
export GITSYNC_WORKDIR=./work_dir/
111+
export GITSYNC_STORAGE_PATH=./Хранилище_1С/
112+
113+
export GITSYNC_STORAGE_USER=Админ
114+
export GITSYNC_STORAGE_PASSWORD=Пароль
115+
export GITSYNC_V8VERSION=8.3.7
116+
export GITSYNC_VERSOBE=true #Можно использовать Да/Ложь/Нет/Истина
117+
export GITSYNC_TEMP=./temp/sync
118+
gitsync i
119+
```
120+
windows:
121+
```cmd
122+
set GITSYNC_WORKDIR=./work_dir/
123+
set GITSYNC_STORAGE_PATH=./Хранилище_1С/
124+
125+
set GITSYNC_STORAGE_USER=Админ
126+
set GITSYNC_STORAGE_PASSWORD=Пароль
127+
set GITSYNC_V8VERSION=8.3.7
128+
set GITSYNC_VERSOBE=true #Можно использовать Да/Ложь/Нет/Истина
129+
set GITSYNC_TEMP=./temp/sync
130+
131+
gitsync i
132+
```
133+
Данная команда создаст новый репозиторий git в каталоге `C:/work_dir/` из хранилища 1С по пути `C:/Хранилище_1С/`

docs/plugins.md

Whitespace-only changes.

docs/setversion.md

Whitespace-only changes.

0 commit comments

Comments
 (0)