Skip to content

Instantly share code, notes, and snippets.

@tylerforesthauser
Last active August 12, 2020 13:57
Show Gist options
  • Save tylerforesthauser/f59ea2183870bbc351794fc5454985fb to your computer and use it in GitHub Desktop.
Save tylerforesthauser/f59ea2183870bbc351794fc5454985fb to your computer and use it in GitHub Desktop.
Modified File Browser installer for USB
#!/usr/bin/env bash
#
# File Browser Installer Script
#
# GitHub: https://github.com/filebrowser/filebrowser
# Issues: https://github.com/filebrowser/filebrowser/issues
# Requires: bash, mv, rm, tr, type, grep, sed, curl/wget, tar
#
install_filemanager()
{
trap 'echo -e "Aborted, error $? in command: $BASH_COMMAND"; trap ERR; return 1' ERR
filemanager_os="linux"
filemanager_arch="amd64"
install_path="$HOME/bin"
filemanager_bin="filebrowser"
filemanager_dl_ext=".tar.gz"
echo "Downloading File Browser for $filemanager_os/$filemanager_arch..."
filemanager_file="${filemanager_os}-$filemanager_arch-filebrowser$filemanager_dl_ext"
filemanager_tag="$(curl -s https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g')"
filemanager_url="https://github.com/filebrowser/filebrowser/releases/download/$filemanager_tag/$filemanager_file"
echo "$filemanager_url"
rm -rf "$HOME/tmp/$filemanager_file"
if type -p curl >/dev/null 2>&1; then
curl -fsSL "$filemanager_url" -o "$HOME/tmp/$filemanager_file"
elif type -p wget >/dev/null 2>&1; then
wget --quiet "$filemanager_url" -O "$HOME/tmp/$filemanager_file"
else
echo "Aborted, could not find curl or wget"
return 7
fi
echo "Extracting..."
case "$filemanager_file" in
*.zip) unzip -o "$HOME/tmp/$filemanager_file" "$filemanager_bin" -d "$HOME/tmp/" ;;
*.tar.gz) tar -xzf "$HOME/tmp/$filemanager_file" -C "$HOME/tmp/" "$filemanager_bin" ;;
esac
chmod +x "$HOME/tmp/$filemanager_bin"
echo "Putting filemanager in $install_path"
mv "$HOME/tmp/$filemanager_bin" "$install_path/$filemanager_bin"
rm -- "$HOME/tmp/$filemanager_file"
if type -p $filemanager_bin >/dev/null 2>&1; then
echo "Successfully installed"
trap ERR
return 0
else
echo "Something went wrong, File Browser is not in your path"
trap ERR
return 1
fi
}
install_filemanager
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment