bes-build/README.md

83 lines
1.9 KiB
Markdown
Raw Normal View History

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: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-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/
2017-05-14 02:00:10 +00:00
|
|--- bes.ini # project information and requirements (optional)
|
|--- dist/project # project build (auto generated by bes-build)
2017-04-26 22:48:05 +00:00
|
|--- src/
2017-05-14 02:00:10 +00:00
| |
| |--- file1.sh
| |--- file2.sh
| | ...
| |--- filen.sh
|
|--- vendor/ # project dependencies (auto generated by bes-build update)
2017-04-26 22:48:05 +00:00
```
* 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
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 02:00:10 +00:00
### Dependency Manager
2017-05-14 02:00:10 +00:00
**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
```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:39:58 +00:00
on next build, **bes-build** will append the dependencies to your dist file