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