Skip to content

Commit

Permalink
NEW: Новая команда get (#15)
Browse files Browse the repository at this point in the history
* Новая команда get
  • Loading branch information
khorevaa authored Mar 22, 2021
1 parent 2a785b7 commit c6d6d70
Show file tree
Hide file tree
Showing 23 changed files with 6,818 additions and 154 deletions.
1 change: 0 additions & 1 deletion .github/workflows/releaser.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: goreleaser

on:
pull_request:
push:
tags:
- '*'
Expand Down
10 changes: 8 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ jobs:
- name: Setup modules
run: |
go mod tidy
- name: Run Test
- name: Run Test ubuntu-latest
if: runner.os == 'Linux'
run: |
go test -race
go test -coverprofile=coverage.out ./...
- name: Run Test windows-latest
if: runner.os == 'Windows'
run: |
go test -coverprofile=coverage.out ./...
shell: cmd
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
*.exe
*.gz
*.zip
*.deb
oneget

logs
Expand All @@ -9,3 +9,7 @@ dist
.idea
*.logs

/platform83/
*.d1c
pack

1 change: 1 addition & 0 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ changelog:
exclude:
- '^docs:'
- '^test:'
- '^skip:'
- Merge pull request
- Merge branch
dockers:
Expand Down
3 changes: 3 additions & 0 deletions .sonarcloud.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Path to tests
sonar.tests=./...
sonar.test.inclusions=**/*_test.go
170 changes: 165 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,179 @@
[![Powered By: GoReleaser](https://img.shields.io/badge/powered%20by-goreleaser-green.svg?style=for-the-badge)](https://github.com/goreleaser)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg?style=for-the-badge)](https://conventionalcommits.org)

### Команда `get`
### Команда `get` описание использования

Использование:
Команда получения релизов проектов с сайта 1С `https://releases.1c.ru/`

Быстрый запуск:
```shell
export ONEC_USERNAME=user
export $ONEC_PASSWORD=password
oneget get --path ./tmp/dist/ --nick platform83 --version 8.3.18.1334 --filter="deb64_.*.tar.gz$"
export ONEC_PASSWORD=password
oneget get --path ./tmp/dist/ platform@8.3.18.1334

# or
oneget --user user --pwd password get --path ./tmp/dist/ --nick platform83 --version 8.3.18.1334 --filter="deb64_.*.tar.gz$"
oneget --user user --pwd password get --path ./tmp/dist/ platform83@8.3.18.1334

```

#### Описание формата аргумента `RELEASE`

Шаблон формата `platform83[:filter.[filter]...]@8.3.18.1334[:filter]`
Где,
* `platform83` - имя проекта (обязательный)
* `[:filter.[filter]...]` - набор фильтров файлов
* `@` - разделитель между проектов и версией релиза
* `8.3.18.1334[:filter]` - описание версии релиза

Минимальный использование указание только имени проекта.
Например, `platform83` - будет трактоваться как `platform83@latest`

> Имя проекта - подсмотреть можно в адресе, ссылки имеют вид например https://releases.1c.ru/project/EnterpriseERP20
> Синонимы проектов для быстрого доступа:
> * `platform` -> `platform83`
> * `edt` -> `DevelopmentTools10`
> * `ring` -> `EnterpriseLicenseTools`
> * `executor` -> `Executor`
> * `pg` -> `AddCompPostgre`
##### Набор фильтров
Список предопределенных фильтров для проектов:
* По ОС:
* `win`, `windows`- фильтр по MS Windows
* `mac` - фильтр по OS X
* `deb` - фильтр по DEB-based Linux-систем
* `rpm` - фильтр по RPM-based Linux-систем
* По разрядности OS:
* `x32` - фильтр по 32-bit (по умолчанию, если не указан фильтр разрядности)
* `x64` - фильтр по 64-bit

> Важно! Для OSX флаг разрядности игнорируется
**Пример использования:**
```shell
export ONEC_USERNAME=user
export ONEC_PASSWORD=password
# Т.к. не указана разрядность OS будет скачены дистрибутивы для x32
# скачать файлы с фильтрацией по Windows
oneget get platform:win
# скачать файлы с фильтрацией по OSX
oneget get platform:mac
# скачать файлы с фильтрацией по DEB-based Linux-систем
oneget get platform:deb
# скачать файлы с фильтрацией по RPM-based Linux-систем
oneget get platform:rpm
```
**Пример для x64:**
```shell
export ONEC_USERNAME=user
export ONEC_PASSWORD=password

# Там где не указана разрядность OS будет скачены дистрибутивы для x32
# скачать файлы с фильтрацией по Windows
oneget get platform:win.x64
# скачать файлы с фильтрацией по OSX
# Важно для OSX флаг разрядности игнорируется
oneget get platform:mac
# скачать файлы с фильтрацией по DEB-based Linux-систем
oneget get platform:deb.x64
# скачать файлы с фильтрацией по RPM-based Linux-систем двух разрядностей сразу
oneget get platform:rpm.x64 platform:rpm.x32
```
##### Специальные фильтры для проектов
**Для проекта platform (platform83)**
* `thin-client`, `thin` - фильтр для файлов тонкого клиента 1С. Предприятие
* `client` - фильтр для файлов клиента 1С. Предприятие
* `server` - фильтр для файлов сервера 1С. Предприятие
* `full` - фильтр для файлов "Технологическая платформа" (только для Windows)

> Важно! Для OSX фильтр `server` игнорируется
> Важно! Фильтр `full` игнорируется для всех других фильтров кроме `win`
**Пример использования:**
```shell
export ONEC_USERNAME=user
export ONEC_PASSWORD=password

# Там где не указана разрядность OS будет скачены дистрибутивы для x32
# скачать файлы сервера для Windows
oneget get platform:win.server.x64
# скачать файлы клиента для OSX
# Важно для OSX флаг разрядности игнорируется
oneget get platform:mac.client
# скачать файлы тонкого клиента для DEB-based Linux-систем
oneget get platform:deb.thin.x64
# скачать файлы сервера для RPM-based Linux-систем
oneget get platform:rpm.server.x64
```

**Для проекта edt (DevelopmentTools10)**

* `jdk` - фильтр для файлов Bellsoft JDK
* `online` - фильтр для файлов онлайн установщика 1С:EDT

> Важно. Для проекта `edt` игнорируются фильтры разрядности
**Пример использования:**
```shell
export ONEC_USERNAME=user
export ONEC_PASSWORD=password

# скачать файлы 1C:EDT для Windows
oneget get edt:win
# скачать файлы 1C:EDT для OSX
oneget get edt:mac
# скачать файлы 1C:EDT для Linux и Bellsoft JDK для DEB-based Linux-систем
oneget get edt:deb
# скачать файлы 1C:EDT для Linux и Bellsoft JDK для RPM-based Linux-систем
oneget get edt:rpm

# скачать файлы онлайн установщика 1C:EDT для Windows
oneget get edt:win.online
```
##### Описание формата версии релиза

> В версии релиза может быть указан номер версии или специальные фильтры версии.
> Если версия релиза пустая, то подставляется фильтр "latest"
> ("edt" -> "edt@latest")
**Специальные фильтры версии релиза:**

* `latest` - выбирает наиболее старшую версию релиза
* `latest:regexp` - фильтрует список версию по `regexp`, и берет наиболее старшую
* `from:date` - фильтрует список версий по дате, у которых дата релиза больше `date` где, `date` - формате 02.06.21
* `from-v:version` - фильтрует список версий, которые старше версии релиза `version` где, `version` - формате номер версии
* `regexp` - фильтрует список по регулярному выражению указанному в `regexp`

**Пример использования:**
```shell
export ONEC_USERNAME=user
export ONEC_PASSWORD=password

# скачать файлы последней версию релиза 1C:EDT для Windows
oneget get edt:win@latest
# or / или
# oneget get edt:win

# скачать файлы Платформы 1С. Предприятие для всех систем
# всех версии релизов, выпущенные начиная с даты 2020.01.01
oneget platform@from:01.01.21

# скачать файлы Платформы 1С. Предприятие для DEB-based Linux-систем
# всех версии релизов, у которых версия старше чем 8.3.18.1363
oneget platform:deb.x64@from-v:8.3.18.1363


# скачать файлы сервера Платформы 1С. Предприятие для DEB-based Linux-систем
# последней выпущенной версии 8.3.16
oneget platform:deb.server.x64@latest:8.3.16

# скачать файлы Платформы 1С. Предприятие для OSX
# всех версии релизов 8.3.16.x
oneget platform:[email protected]
```

## Запуск в докере

Expand Down Expand Up @@ -55,6 +214,7 @@ appenders:
- name: FILE
file_name: ./logs/oneget.log
max_size: 100
max_age: 10
encoder:
json:
loggers:
Expand Down
Loading

0 comments on commit c6d6d70

Please sign in to comment.