mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
91 lines
2.2 KiB
Bash
91 lines
2.2 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
# Install script to install fn
|
|
|
|
release="0.2.56"
|
|
|
|
command_exists() {
|
|
command -v "$@" > /dev/null 2>&1
|
|
}
|
|
|
|
case "$(uname -m)" in
|
|
*64)
|
|
;;
|
|
*)
|
|
echo >&2 'Error: you are not using a 64bit platform.'
|
|
echo >&2 'Functions CLI currently only supports 64bit platforms.'
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
if command_exists fn ; then
|
|
echo >&2 'Warning: "fn" command appears to already exist.'
|
|
echo >&2 'If you are just upgrading your functions cli client, ignore this and wait a few seconds.'
|
|
echo >&2 'You may press Ctrl+C now to abort this process.'
|
|
( set -x; sleep 5 )
|
|
fi
|
|
|
|
user="$(id -un 2>/dev/null || true)"
|
|
|
|
sh_c='sh -c'
|
|
if [ "$user" != 'root' ]; then
|
|
if command_exists sudo; then
|
|
sh_c='sudo -E sh -c'
|
|
elif command_exists su; then
|
|
sh_c='su -c'
|
|
else
|
|
echo >&2 'Error: this installer needs the ability to run commands as root.'
|
|
echo >&2 'We are unable to find either "sudo" or "su" available to make this happen.'
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
curl=''
|
|
if command_exists curl; then
|
|
curl='curl -sSL -o'
|
|
elif command_exists wget; then
|
|
curl='wget -qO'
|
|
elif command_exists busybox && busybox --list-modules | grep -q wget; then
|
|
curl='busybox wget -qO'
|
|
else
|
|
echo >&2 'Error: this installer needs the ability to run wget or curl.'
|
|
echo >&2 'We are unable to find either "wget" or "curl" available to make this happen.'
|
|
exit 1
|
|
fi
|
|
|
|
url='https://github.com/iron-io/functions/releases/download'
|
|
|
|
# perform some very rudimentary platform detection
|
|
case "$(uname)" in
|
|
Linux)
|
|
$sh_c "$curl /usr/local/bin/fn $url/$release/fn_linux"
|
|
$sh_c "chmod +x /usr/local/bin/fn"
|
|
fn --version
|
|
exit 0
|
|
;;
|
|
Darwin)
|
|
$sh_c "$curl /usr/local/bin/fn $url/$release/fn_mac"
|
|
$sh_c "chmod +x /usr/local/bin/fn"
|
|
fn --version
|
|
exit 0
|
|
;;
|
|
WindowsNT)
|
|
$sh_c "$curl $url/$release/fn.exe"
|
|
# TODO how to make executable? chmod?
|
|
fn.exe --version
|
|
exit 0
|
|
;;
|
|
esac
|
|
|
|
cat >&2 <<'EOF'
|
|
|
|
Either your platform is not easily detectable or is not supported by this
|
|
installer script (yet - PRs welcome! [fn/install]).
|
|
Please visit the following URL for more detailed installation instructions:
|
|
|
|
https://github.com/iron-io/functions
|
|
|
|
EOF
|
|
exit 1
|