Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mdouchement/composer
An awesome utility to manage all your processes in development environment
https://github.com/mdouchement/composer
application-launcher composer developer-tools golang process-manager
Last synced: about 2 months ago
JSON representation
An awesome utility to manage all your processes in development environment
- Host: GitHub
- URL: https://github.com/mdouchement/composer
- Owner: mdouchement
- License: mit
- Created: 2016-09-17T16:18:08.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-12-29T12:12:18.000Z (about 1 year ago)
- Last Synced: 2024-06-20T15:48:35.011Z (7 months ago)
- Topics: application-launcher, composer, developer-tools, golang, process-manager
- Language: Go
- Size: 43.9 KB
- Stars: 2
- Watchers: 2
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Composer
Composer is CLI software for managing processes in development environment.
## Requirements
- Golang 1.13.x
## Installation
- Download it from [releases](https://github.com/mdouchement/composer/releases) page.
### Manual build
1. Install Go 1.13+
2. Clone this project
- `git clone https://github.com/mdouchement/composer`
3. Build the binary
- `go build -o composer *.go`
4. Install the compiled binary
- `mv composer /usr/bin/composer`## Usage
```sh
$ composer start -c ~/server-stack.yml
```## Configuration file
`command` is interpreted as shell script.
- Basic
```yml
services:
risuto:
pwd: $GOPATH/src/github.com/mdouchement/risuto
command: go run risuto.go -p 5000 -b localhost
environment:
RISUTO_DATABASE: /tmp/data/tiedot_dbbreizhtrip:
pwd: $GOPATH/src/github.com/mdouchement/breizhtrip-go
command: go run breizhtrip.go -p 5005 -b localhostmachinery:
pwd: $GOPATH/src/github.com/mdouchement/machnery-app
command: go run app.go worker -c 5random_shell_script:
pwd: /tmp
command: |
for i in 0 1 2 3 4 5 6 7 8 9
do
echo "Hello $i times"
done
```- Full options
```yml
services:
ggpull:
pwd: /home/$USER/myapp
command: git pullapp:
hooks:
wait:
- ggpull
pwd: /home/$USER/myapp
command: bundle exec rails s
log_trim_pattern: '\[.*\] \w+ (?P.*)'
environment:
RAILS_ENV: productionworker:
ignore_error: true # Do not stop other services on error
hooks:
wait: # wait for other processes before start
- ggpull
kill: # kill other processes on exit
- app
pwd: /home/$USER/myapp
command: bundle exec sidekiq -c config/sidekiq.yml
```### Trim logs
Outputed logs can be trimed to remove useless data like timestamp. This option is based on the Golang's [regexp](https://golang.org/pkg/regexp/) package and you can test your regexp with the following website [Regex Tester - Golang](https://regex-golang.appspot.com/assets/html/index.html).
The captured group must be named `message` like the following example:
```
log_trim_pattern: '\[.*\] \w+ (?P.*)'
```The result is the following:
```
# Without trim:
[Feb 13 10:38:09] INFO my_app: [2017-02-13 10:38:09] INFO WEBrick 1.3.1# With trim:
[Feb 13 10:38:09] INFO my_app: WEBrick 1.3.1# When the trim regexp does not match, the message is prefixed with `[!]`
[Feb 13 10:38:09] INFO my_app: [!] => Booting WEBrick
```## License
**MIT**
## Contributing
1. Fork it
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
5. Push to the branch (git push origin my-new-feature)
6. Create new Pull Request