85 lines
2.2 KiB
Markdown
85 lines
2.2 KiB
Markdown
|
curl-bash-template.sh
|
|||
|
=====================
|
|||
|
|
|||
|
So you've got a neat project and you want to be able to have others get it up and running quickly, eh?
|
|||
|
|
|||
|
You'd like them to be able to do something like this and have your service installed, eh?
|
|||
|
|
|||
|
```bash
|
|||
|
curl -L install.example.io | bash
|
|||
|
```
|
|||
|
|
|||
|
Well, this is a collection of scripts that you can include in your repo to do just that.
|
|||
|
|
|||
|
Just modify `get.sh` to point to your repo (you could host this on `install.my-project.io`, for example)
|
|||
|
and modify `local.sh` for your specific project.
|
|||
|
|
|||
|
Currently supports:
|
|||
|
|
|||
|
* macOS's launchd
|
|||
|
* Linux's systemd
|
|||
|
|
|||
|
Make Your Project Layout Like This
|
|||
|
----------------------------------
|
|||
|
|
|||
|
```
|
|||
|
/Users/me/git.example.com/me/awesome.js/
|
|||
|
├── CHANGELOG
|
|||
|
├── LICENSE
|
|||
|
├── README.md
|
|||
|
├── dist
|
|||
|
│ ├── Library
|
|||
|
│ │ └── LaunchDaemons
|
|||
|
│ │ └── com.example.awesome.plist
|
|||
|
│ └── etc
|
|||
|
│ ├── awesome
|
|||
|
│ │ └── awesome.example.yml
|
|||
|
│ ├── systemd
|
|||
|
│ │ └── system
|
|||
|
│ │ └── awesome.service
|
|||
|
│ └── tmpfiles.d
|
|||
|
│ └── awesome.conf
|
|||
|
├── installer
|
|||
|
│ ├── get.sh
|
|||
|
│ └── local.sh
|
|||
|
├── lib
|
|||
|
└── package.json
|
|||
|
```
|
|||
|
|
|||
|
Let Your Followers Install Your Project Like This
|
|||
|
----------------------------------
|
|||
|
|
|||
|
```bash
|
|||
|
curl -L https://git.example.com/example/project.git/raw/master/installer/get.sh | bash
|
|||
|
```
|
|||
|
|
|||
|
The installed system looks like this:
|
|||
|
|
|||
|
```
|
|||
|
/
|
|||
|
├── etc
|
|||
|
│ ├── systemd
|
|||
|
│ │ └── system
|
|||
|
│ │ └── awesome.service
|
|||
|
│ └── tmpfiles.d
|
|||
|
│ └── awesome.conf
|
|||
|
├── opt
|
|||
|
│ └── awesome
|
|||
|
│ ├── etc
|
|||
|
│ ├── lib
|
|||
|
│ └── var
|
|||
|
└── Library
|
|||
|
└── LaunchDaemons
|
|||
|
└── com.example.awesome.plist
|
|||
|
```
|
|||
|
|
|||
|
Available Helpers
|
|||
|
-----------------
|
|||
|
|
|||
|
```
|
|||
|
$my_root typically /, but could have a prefix on android
|
|||
|
$sudo_cmd 'sudo' if not root and sudo is installed, otherwise empty
|
|||
|
http_get <url> <filepath> uses curl or wget to download a file
|
|||
|
http_bash <url> downloads file to a temporary location and runs it with bash
|
|||
|
```
|