From d6b6b204b9b3c7e004a9ec18a3322c892494d96e Mon Sep 17 00:00:00 2001 From: Stephan Kulla Date: Thu, 8 Sep 2016 10:28:21 +0200 Subject: [PATCH] install.sh: Recommend using sudo on error. Show error message that the user shall try running this script with sudo in case write permissions are missing. Implement proposal of comment https://github.com/ipfs/go-ipfs/pull/3194#issuecomment-245376993 License: MIT Signed-off-by: Stephan Kulla --- cmd/ipfs/dist/install.sh | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/cmd/ipfs/dist/install.sh b/cmd/ipfs/dist/install.sh index 8fd5c1ce397e..f86881afef03 100755 --- a/cmd/ipfs/dist/install.sh +++ b/cmd/ipfs/dist/install.sh @@ -3,6 +3,10 @@ bin=ipfs binpaths="/usr/local/bin /usr/bin" +# This variable contains a nonzero length string in case the script fails +# because of missing write permissions. +is_write_perm_missing="" + # this script is currently brain dead. # it merely tries two locations. # in the future maybe use value of $PATH. @@ -11,8 +15,21 @@ for binpath in $binpaths; do if mv -t "$binpath" "$bin" 2> /dev/null; then echo "Moved $bin into $binpath" exit 0 + else + if [ -d "$binpath" -a ! -w "$binpath" ]; then + is_write_perm_missing=1 + fi fi done -echo "cannot install $bin in one of the directories $binpaths" +echo "We cannot install $bin in one of the directories $binpaths" + +if [ -n "$is_write_perm_missing" ]; then + echo "It seems that we do not have the necessary write permissions." + echo "Perhaps try running this script as a privileged user:" + echo + echo " sudo $0" + echo +fi + exit 1