119 lines
2.1 KiB
Bash
119 lines
2.1 KiB
Bash
|
#!/bin/sh
|
||
|
set -e
|
||
|
|
||
|
usage() { echo "Usage: curl https://rclone.org/install.sh | sudo bash [-s beta]" 1>&2; exit 1; }
|
||
|
|
||
|
#check for beta flag
|
||
|
if [ -n "$1" ] && [ "$1" != "beta" ]; then
|
||
|
usage
|
||
|
fi
|
||
|
|
||
|
if [ -n "$1" ]; then
|
||
|
install_beta="yes"
|
||
|
fi
|
||
|
|
||
|
#detect the platform
|
||
|
OS="`uname`"
|
||
|
case $OS in
|
||
|
Linux)
|
||
|
OS='linux'
|
||
|
;;
|
||
|
FreeBSD)
|
||
|
OS='freebsd'
|
||
|
;;
|
||
|
NetBSD)
|
||
|
OS='netbsd'
|
||
|
;;
|
||
|
OpenBSD)
|
||
|
OS='openbsd'
|
||
|
;;
|
||
|
Darwin)
|
||
|
OS='osx'
|
||
|
;;
|
||
|
SunOS)
|
||
|
OS='solaris'
|
||
|
echo 'OS not supported'
|
||
|
exit 1
|
||
|
;;
|
||
|
*)
|
||
|
echo 'OS not supported'
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
OS_type="`uname -m`"
|
||
|
case $OS_type in
|
||
|
x86_64|amd64)
|
||
|
OS_type='amd64'
|
||
|
;;
|
||
|
i?86|x86)
|
||
|
OS_type='386'
|
||
|
;;
|
||
|
arm*)
|
||
|
OS_type='arm'
|
||
|
;;
|
||
|
*)
|
||
|
echo 'OS type not supported'
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
#create tmp directory and move to it
|
||
|
tmp_dir=`mktemp -d`; cd $tmp_dir
|
||
|
|
||
|
#download and unzip
|
||
|
if [ -z "${install_beta}" ]; then
|
||
|
download_link="https://downloads.rclone.org/rclone-current-$OS-$OS_type.zip"
|
||
|
rclone_zip="rclone-current-$OS-$OS_type.zip"
|
||
|
else
|
||
|
download_link="https://beta.rclone.org/rclone-beta-latest-$OS-$OS_type.zip"
|
||
|
rclone_zip="rclone-beta-latest-$OS-$OS_type.zip"
|
||
|
fi
|
||
|
|
||
|
curl -O $download_link
|
||
|
unzip_dir="tmp_unzip_dir_for_rclone"
|
||
|
unzip -a $rclone_zip -d $unzip_dir
|
||
|
cd $unzip_dir/*
|
||
|
|
||
|
#mounting rclone to enviroment
|
||
|
|
||
|
case $OS in
|
||
|
'linux')
|
||
|
#binary
|
||
|
cp rclone /usr/bin/
|
||
|
chmod 755 /usr/bin/rclone
|
||
|
chown root:root /usr/bin/rclone
|
||
|
#manuals
|
||
|
mkdir -p /usr/local/share/man/man1
|
||
|
cp rclone.1 /usr/local/share/man/man1/
|
||
|
mandb
|
||
|
;;
|
||
|
'freebsd'|'openbsd'|'netbsd')
|
||
|
#bin
|
||
|
cp rclone /usr/bin/
|
||
|
chmod 755 /usr/bin/rclone
|
||
|
chown root:wheel /usr/bin/rclone
|
||
|
#man
|
||
|
mkdir -p /usr/local/man/man1
|
||
|
cp rclone.1 /usr/local/man/man1/
|
||
|
makewhatis
|
||
|
;;
|
||
|
'osx')
|
||
|
#binary
|
||
|
mkdir -p /usr/local/bin
|
||
|
cp rclone /usr/local/bin/
|
||
|
#manual
|
||
|
mkdir -p /usr/local/share/man/man1
|
||
|
cp rclone.1 /usr/local/share/man/man1/
|
||
|
;;
|
||
|
*)
|
||
|
echo 'OS not supported'
|
||
|
exit 1
|
||
|
esac
|
||
|
|
||
|
|
||
|
echo
|
||
|
echo 'Now run "rclone config" for setup. Check https://rclone.org/docs/ for more details.'
|
||
|
echo
|
||
|
exit 0
|