Scripts for creating a curl | bash service installer.
Go to file
AJ ONeal 2cb2c47bd3 ws 2017-11-07 17:45:35 -07:00
installer initial commit 2017-11-07 17:42:40 -07:00
README.md ws 2017-11-07 17:45:35 -07:00

README.md

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?

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

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