From 71e8da7289e0a3091c63b20d5c1e2fb66cb13fa2 Mon Sep 17 00:00:00 2001 From: Lockszmith Date: Sat, 17 Sep 2022 02:04:15 -0400 Subject: [PATCH] truecharts generalization --- _home/dot_sz.shrc.d/23_truecharts | 24 +++++++++++++++++-- .../bin/executable_fix-permissions | 18 ++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 _home/private_dot_local/bin/executable_fix-permissions diff --git a/_home/dot_sz.shrc.d/23_truecharts b/_home/dot_sz.shrc.d/23_truecharts index 499bed0..9b394fe 100644 --- a/_home/dot_sz.shrc.d/23_truecharts +++ b/_home/dot_sz.shrc.d/23_truecharts @@ -1,6 +1,26 @@ -if [[ -x "/mnt/szmedia/_apps.data/_scripts/truetool/truetool.sh" ]]; then +[[ -r /etc/apt/sources.list ]] \ + && ixsystems_system=$(cat /etc/apt/sources.list | grep '^deb https\?://apt\.tn\.ixsystems\.com' | wc -l) \ + && [[ $ixsystems_system -lt 11 ]] \ + && unset ixsystems_system + +if [[ -n "$ixsystems_system" ]]; then + if ! [[ -r /tmp/truenas_scriptpath ]]; then + /sbin/zpool list -Ho name | \ + grep -v 'boot-pool' | \ + while read pool; do + /sbin/zfs list -rHo name $pool | \ + grep "^$pool/[a-z\._]*data/_\?scripts" + done | \ + while read dataset; do + /sbin/zfs list -Ho mountpoint $dataset + done > /tmp/truenas_scriptpath + fi + truenas_scriptspath=$(cat /tmp/truenas_scriptpath) +fi + +if [[ -n "$truenas_scriptspath" && -x "${truenas_scriptspath}/truetool/truetool.sh" ]]; then function truetool() { - pushd /mnt/szmedia/_apps.data/_scripts/truetool > /dev/null + pushd ${truenas_scriptspath}/truetool > /dev/null sudo ./truetool.sh "${@}" popd > /dev/null } diff --git a/_home/private_dot_local/bin/executable_fix-permissions b/_home/private_dot_local/bin/executable_fix-permissions new file mode 100644 index 0000000..1f20cba --- /dev/null +++ b/_home/private_dot_local/bin/executable_fix-permissions @@ -0,0 +1,18 @@ +#! /usr/bin/env bash + +SOURCE=${BASH_SOURCE[0]} +while [ -L "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink + DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd ) + SOURCE=$(readlink "$SOURCE") + [[ $SOURCE != /* ]] && SOURCE=$DIR/$SOURCE # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located +done +DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd ) + +[[ -r "$DIR/01_util.functions" ]] && . "$DIR/01_util.functions" || { + [[ -r ~/.sz.shrc.d/01_util.functions ]] && . ~/.sz.shrc.d/01_util.functions +} +[[ -z "$(type -t require_root)" ]] && (>&2 printf '\E[31mERROR:\E[0m %s\n' "Failed to load 01_util.functions" ) && exit 1 + +require_root + +error "This is an error"