#!/bin/bash # Copyright (C) 2019 Ian Kelling # SPDX-License-Identifier: AGPL-3.0-or-later if [ -z "$BASH_VERSION" ]; then echo "error: shell is not bash" >&2; exit 1; fi shopt -s inherit_errexit 2>/dev/null ||: # ignore fail in bash < 4.4 set -eE -o pipefail trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR # alternatively, using https://iankelling.org/git/?p=errhandle;a=tree # source /path/errhandle/err # on my machine source /a/bin/errhandle/err # install rust. if type -t rustc &>/dev/null; then rustup update else curl https://sh.rustup.rs -sSf | bash -s -- -y fi # todo: update this. updates in rust are stupidly complicate if ! which rg &>/dev/null; then cargo install ripgrep fi if ! type -t cargo-install-update &>/dev/null; then cargo install cargo-update fi cargo install-update -a