Files
q-tools/rc
2024-08-06 21:59:40 +03:00

82 lines
2.2 KiB
Plaintext
Executable File

# source me to enable tools
if [[ "$OSTYPE" = "darwin"* ]]; then
QTOOLSPATH=$( realpath $( dirname "$BASH_SOURCE" ) )
else
QTOOLSPATH=$( readlink -f $( dirname "$BASH_SOURCE" ) )
fi
PATH=$PATH:"$QTOOLSPATH"/bin
[[ "$1" = "-f" ]] && PATH="$QTOOLSPATH"/bin:$PATH
. "$QTOOLSPATH"/q-tools-functions
path_remove_duplicates
[[ -f "$QTOOLSPATH"/tsv/tsvkit.sh ]] && . "$QTOOLSPATH"/tsv/tsvkit.sh &>/dev/null
function _q-tools-reload {
# reload self
[[ -z "$QTOOLSPATH" ]] && return
source "$QTOOLSPATH"/rc
}
function _q-tools-update {
# update self
[[ -z "$QTOOLSPATH" ]] && return
[[ -w "$QTOOLSPATH" ]] || return
"$QTOOLSPATH"/rc -u
_q-tools-reload
}
function _q-tools-update-binary {
# update self
[[ -z "$QTOOLSPATH" ]] && return
[[ -w "$QTOOLSPATH" ]] || return
local foo
echo "Updating with binary deletes the existing folder! sure? y/N"
read foo
[[ "$foo" = y ]] || return
rm -rf "$QTOOLSPATH"
mkdir -p "$QTOOLSPATH"
curl https://bitbucket.org/MoonQ/q-tools/get/HEAD.tar.gz | \
tar xz --strip 1 -C "$QTOOLSPATH"
_q-tools-reload
}
function _self_update() {
touch "$QTOOLSPATH"/.lastupdate
pushd "$QTOOLSPATH" > /dev/null
git remote get-url origin 2>&1 | grep -q https...bitbucket.org/MoonQ && {
git remote set-url origin https://git.six9.net/moonq/q-tools
}
[[ "$1" = "-u" ]] && {
git pull
} || {
timeout 10 git pull > /dev/null 2>&1
}
popd > /dev/null
}
[[ "$1" = "-u" ]] && {
_self_update -u
unset -f _self_update
}
# Update self weekly,
# if folder writable, if repository, if an interactive terminal, if not updated the last week
TOOLS_TO_UPDATE=1
[[ -w "$QTOOLSPATH" ]] || TOOLS_TO_UPDATE=0
[[ -w "$QTOOLSPATH"/.git ]] || TOOLS_TO_UPDATE=0
[[ -t 0 ]] || TOOLS_TO_UPDATE=0
[[ -t 1 ]] || TOOLS_TO_UPDATE=0
[[ -t 2 ]] || TOOLS_TO_UPDATE=0
[[ -f "$QTOOLSPATH"/.lastupdate ]] || touch -t 0101010101 "$QTOOLSPATH"/.lastupdate 2> /dev/null
[[ -w "$QTOOLSPATH"/.lastupdate ]] || TOOLS_TO_UPDATE=0
if [ $TOOLS_TO_UPDATE -eq 1 ]; then
TOOLS_LASTUPDATE=$( "$QTOOLSPATH"/files/file-age "$QTOOLSPATH"/.lastupdate d )
[[ "$TOOLS_LASTUPDATE" -gt 7 ]] && _self_update
unset TOOLS_LASTUPDATE
fi
unset TOOLS_TO_UPDATE
unset -f _self_update