bes-build/README.md
2017-05-14 04:02:34 +02:00

83 lines
1.9 KiB
Markdown

bes-build
=========
**bes-build** is a bash script to build bash program.
the building process simply consist to append shell script files from your `src/` project directory
into a single `dist/project` executable file
since version **0.5** **bes-build** attempt to be a *dependency manager* like `composer` (for php projects) but in a more extra-light way
### Install
```
wget https://raw.githubusercontent.com/meta-tech/bes-build/latest/dist/bes-build
bash ./bes-build -i
```
### Usage
```shell
# change directory to your project
cd /home/repo/meta-tech/bes
bes-build
# you can now execute program with :
./dist/bes
# to display help execute :
bes-build -h
```
### Requirements
using **bes-build** script require you to conform to these following rules :
* respect this directory structure :
```pre
project/
|
|--- bes.ini # project information and requirements (optional)
|
|--- dist/project # project build (auto generated by bes-build)
|
|--- src/
| |
| |--- file1.sh
| |--- file2.sh
| | ...
| |--- filen.sh
|
|--- vendor/ # project dependencies (auto generated by bes-build update)
```
* each `src/` shell file require a `shebang` on first line (**#!/bin/bash**)
* `src/main.sh` file is append to the end of the build file
* we strongly recommand you to use function and prefix function name
```shell
bes.install(){
...
}
```
### Dependency Manager
**note:** This functionnality is still in progress
to use **bes-build** like a dependency manager, you need a `bes.ini` file in your application root path
```ini
[require]
bes.echo = 1.0
```
then you can run the `update` command before building
```shell
bes-build update
```
**bes-build** call `git` on a `vendor` directory and clone the require lib
on next build, **bes-build** will append the dependencies to your dist file