mirror of
https://github.com/bpkg/bpkg
synced 2024-11-04 06:00:18 +00:00
udpate README
This commit is contained in:
parent
9b16fbb62c
commit
8950991f43
154
README.md
154
README.md
@ -3,14 +3,162 @@ bpkg
|
|||||||
|
|
||||||
Lightweight bash package manager
|
Lightweight bash package manager
|
||||||
|
|
||||||
### Installation
|
## install
|
||||||
|
|
||||||
|
**Install script:**
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
$ curl -Lo- https://raw.githubusercontent.com/bpkg/bpkg/master/install.sh | bash
|
||||||
|
```
|
||||||
|
|
||||||
|
**[clib](https://github.com/clibs/clib):**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ clib install bpkg/bpkg
|
||||||
|
```
|
||||||
|
|
||||||
|
**source:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ git clone https://github.com/bpkg/bpkg.git
|
||||||
|
$ cd bpkg
|
||||||
$ make install
|
$ make install
|
||||||
```
|
```
|
||||||
|
|
||||||
### Usage
|
## usage
|
||||||
|
|
||||||
|
### installing package
|
||||||
|
|
||||||
|
*global:*
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ bpkg install term -g
|
||||||
```
|
```
|
||||||
$ bpkg --help
|
|
||||||
|
*project:* (installs into `deps/`)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ bpkg install term
|
||||||
```
|
```
|
||||||
|
|
||||||
|
*versioned:*
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ bpkg install jwerle/suggest.sh@0.0.1 -g
|
||||||
|
```
|
||||||
|
|
||||||
|
**note:** Versioned packages must be tagged releases by the author.
|
||||||
|
|
||||||
|
### package info
|
||||||
|
|
||||||
|
From the root of a package directory:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ bpkg package name
|
||||||
|
"bpkg"
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ bpkg package version
|
||||||
|
"0.0.5"
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ bpkg package
|
||||||
|
["name"] "bpkg"
|
||||||
|
["version"] "0.0.5"
|
||||||
|
["description"] "Lightweight bash package manager"
|
||||||
|
["global"] true
|
||||||
|
["install"] "make install"
|
||||||
|
```
|
||||||
|
|
||||||
|
## package.json
|
||||||
|
|
||||||
|
### name
|
||||||
|
|
||||||
|
The `name` attribute is required as it is used to tell `bpkg` where to
|
||||||
|
put it in the `deps/` directory in you project.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"name": "my-script"
|
||||||
|
```
|
||||||
|
|
||||||
|
### version
|
||||||
|
|
||||||
|
The `version` attribute is not required but can be useful. It should
|
||||||
|
correspond to the version that is associated with the installed package.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"version": "0.0.1"
|
||||||
|
```
|
||||||
|
|
||||||
|
### description
|
||||||
|
|
||||||
|
A human readable description of what the package offers for
|
||||||
|
functionality.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"description": "This script makes monkeys jump out of your keyboard"
|
||||||
|
```
|
||||||
|
|
||||||
|
### global
|
||||||
|
|
||||||
|
Indicates that the package is only intended to be install as a script.
|
||||||
|
This allows the ommition of the `-g` or `--global` flag during
|
||||||
|
installation.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"global": "true"
|
||||||
|
```
|
||||||
|
|
||||||
|
### install
|
||||||
|
|
||||||
|
Shell script used to invoke in the install script. This is required if
|
||||||
|
the `global` attribute is set to `true` or if the `-g` or `--global`
|
||||||
|
flags are provided.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"install": "make install"
|
||||||
|
```
|
||||||
|
|
||||||
|
### scripts
|
||||||
|
|
||||||
|
This is an array of scripts that will be installed into a project.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"scripts": ["script.sh"]
|
||||||
|
```
|
||||||
|
|
||||||
|
## best practices
|
||||||
|
|
||||||
|
### package exports
|
||||||
|
|
||||||
|
Its nice to have a bash package that can be used in the terminal and
|
||||||
|
also be invoked as a command line function. To achieve this the
|
||||||
|
exporting of your functionality *should* follow this pattern:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
if [[ ${BASH_SOURCE[0]} != $0 ]]; then
|
||||||
|
export -f my_script
|
||||||
|
else
|
||||||
|
my_script "${@}"
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
```
|
||||||
|
|
||||||
|
This allows a user to `source` your script or invoke as a script.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ ./my_script.sh some args --blah
|
||||||
|
```
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ source my_script.sh
|
||||||
|
$ my_script some more args --blah
|
||||||
|
```
|
||||||
|
|
||||||
|
## license
|
||||||
|
|
||||||
|
MIT
|
||||||
|
@ -3,6 +3,5 @@
|
|||||||
"version": "0.0.5",
|
"version": "0.0.5",
|
||||||
"description": "Lightweight bash package manager",
|
"description": "Lightweight bash package manager",
|
||||||
"global": true,
|
"global": true,
|
||||||
"scripts": [ "bpkg.sh" ],
|
|
||||||
"install": "make install"
|
"install": "make install"
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user