exechain
exechain - система сборки, вдохновленная популярной системой сборки make. Целью проекта является предоставление удобного и гибкого инструмента для автоматизации процесса сборки и управления зависимостями в проектах.
Введение
exechain - это утилита, которая позволяет описывать и выполняет цепочки команд, необходимые для сборки вашего проекта и управления его зависимостями, аналогично тому, как это делает make. Это удобный и мощный инструмент, подходящий для различных типов проектов и сценариев.
Список возможностей
- Описание процесса сборки декларативным методом
- Отслеживание изменения файлов для пересборки только необходимых файлов
- Включение скриптов сборки из подкаталогов
Установка
Установка утилиты выполняется командой: pip install exechain. Так же можно установить из GitVerse: pip install --index-url https://gitverse.ru/api/packages/Depish/pypi/simple/ exechain
Начало работы
Подробная документация по началу работы с exechain будет добавлена, как только проект достигнет более стабильной версии. На данный момент основная концепция работы аналогична работе целей в make.
Примеры использования
Для создания сценария сборки необходимо создать файл exechain. В данном файле используется язык программирования Python и доступны все его функции.
Пример сборочного скрипта:
# Данный импорт для подсказок в IDE
from exechain.exechain import *
Target("hello",
dependencies = [
Target("main.cpp", recept=[
Shell("echo 'int main() {return 0;}' > {{target.name}}")
])
],
recept=[
Shell("g++ main.cpp -o hello")
]
)
После создания сборочного скрипта нам необходимо его запустить. Для этого в пакете exechain имеется утилита ech.
Необходимо перейти в каталог с файлом exechain и выполнить команду
ech hello
Где hello это имя цели которую необходимо выполнить. Можно указать несколько целей. Любая цель из любого места в файле может быть вызвана через аргументы.
Данный проект так же собирается с помощью exechain.
Пример конфигурационного файла
Target("hello",
dependencies = [
Target("main.cpp", recept=[
Shell("echo 'int main() {return 0;}' > {{target.name}}")
])
],
recept=[
Shell("g++ main.cpp -o hello")
]
)
Состояние проекта
Проект находится на ранней стадии разработки. Многие функции все еще находятся в стадии проектирования и реализации. Следите за обновлениями и новыми релизами.
Вклад
Мы приветствуем вклад в развитие проекта. Если у вас есть идеи, исправления или улучшения, пожалуйста, создайте issue или pull request в этом репозитории.
Лицензия
Подробности можно найти в файле LICENSE.md.
Благодарим вас за интерес к exechain! Надеемся, что этот инструмент окажется полезным и облегчит вашу работу над проектами.
Metadata
Release files for exechain 0.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| exechain-0.0.5.tar.gz | 19.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| exechain-0.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.2 kB
Release files / exechain-0.0.5.tar.gz
| Download URL | exechain-0.0.5.tar.gz |
|---|---|
| Size | 19.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
89ba95d411a81b8cfdc454aaa6467939eb41e0ad0ca66a586449278b0d3cc77f
|
|
BLAKE2b-256 checksum How to use checksums |
efab4f447eef61b53582b909d7c00c4a420ce5ebbd6884063c436f30bc9abfae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.2
|
Release files / exechain-0.0.5-py3-none-any.whl
| Download URL | exechain-0.0.5-py3-none-any.whl |
|---|---|
| Size | 24.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
76fbba9cfb68d099d50d10ea8c4fad1676518fdaca53b3ee20ce2171d77d4b82
|
|
BLAKE2b-256 checksum How to use checksums |
3c60beb06b2e96f394d39e83decf5632029d63c854f4fb10fc4488ab6fd50c6d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.2
|