Scripts for creating a curl | bash service installer.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AJ ONeal 2cb2c47bd3 ws 6 years ago
installer initial commit 6 years ago
README.md ws 6 years ago

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