cosmtrek

Air

☁️ Live reload for Go apps
Under GNU General Public License v3.0
By cosmtrek

docker go gin tools build-tool watcher live-reload task-runner

Air

:cloud: Live reload for Go apps



Motivation

When I get started with developing websites in Go and gin framework, it's a pity
that gin lacks live-reloading function. In fact, I tried fresh and it seems not much
flexible, so I intended to rewrite it in a better way. Finally, Air's born.
In addition, great thanks to pilu, no fresh, no air :)


Air is yet another live-reloading command line utility for Go applications in development. Just air in your project root directory, leave it alone,
and focus on your code.


NOTE: This tool has nothing to do with hot-deploy for production.


Features

Installation
Prefer install.sh

```bash


binary will be $(go env GOPATH)/bin/air

curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin


or install it into ./bin/

curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s


air -v
```


P.S. Great thanks mattn's PR for supporting Windows platform.


Docker

Please pull this docker image cosmtrek/air.


bash
docker run -it --rm \
-w "<PROJECT>" \
-e "air_wd=<PROJECT>" \
-v $(pwd):<PROJECT> \
-p <PORT>:<APP SERVER PORT> \
cosmtrek/air
-c <CONF>


For example, one of my project runs in docker:


bash
docker run -it --rm \
-w "/go/src/github.com/cosmtrek/hub" \
-v $(pwd):/go/src/github.com/cosmtrek/hub \
-p 9090:9090 \
cosmtrek/air


Usage

For less typing, you could add alias air='~/.air' to your .bashrc or .zshrc.


First enter into your project


bash
cd /path/to/your_project


The simplest usage is run


```bash


firstly find .air.toml in current directory, if not found, use defaults

air -c .air.toml
```


You can initialize the .air.toml configuration file to the current directory with the default settings running the following command.


bash
air init


After this you can just run the air command without additional arguments and it will use the .air.toml file for configuration.


bash
air


For modifying the configuration refer to the air_example.toml file.


Debug

air -d prints all logs.


Q&A
"command not found: air" or "No such file or directory"

zsh
export GOPATH=$HOME/xxxxx
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export PATH=$PATH:$(go env GOPATH)/bin <---- Confirm this line in you profile!!!


Development

Please note that it requires Go 1.13+ since I use go mod to manage dependencies.


```bash


1. fork this project
2. clone it

mkdir -p $GOPATH/src/github.com/cosmtrek
cd $GOPATH/src/github.com/cosmtrek
git clone [email protected]:/air.git


3. install dependencies

cd air
make ci


4. explore it and happy hacking!

make install
```


BTW: Pull requests are welcome~


Release new version

```


1. checkout to master

git checkout master


2. add the version that needs to be released

git tag v1.xx.x


3. push to remote

git push origin v1.xx.x


the ci will processing and will release new version,wait about 5 min you can fetch the new version.
```


Sponsor


Huge thanks to the following supporters. I've always been remembering your kindness.



License

GNU General Public License v3.0