#
# @(#) Copyright 1994-2022 Pincoder Diagnostics Inc.
#

export BKPARCH="$($BKPROOT/bin/bkp_arch)"
export BKPARCHLIB=$BKPROOT/lib.$BKPARCH
export BKPARCHBIN=$BKPROOT/bin.$BKPARCH
export REVSH=$BKPARCHBIN/revsh

# export TZ REVSERVER
if [ "$BKPARCH" = wnt ]; then
	revsh_exe=$BKPROOT/bin.$BKPARCH/revsh.exe
else
	revsh_exe=$BKPROOT/bin.$BKPARCH/revsh
fi

rps() {
	local out=$(ps -eo user,pid,ppid,ni,start_time,nlwp,pcpu,args)
	echo "$out" | head -n 1 | sed 's=^=[35m=; s=$=[0m='

	if [ ! -f "$REVDAEMONSPIDFN" ]; then
		echo "$out" | grep "revsh" | cat
		return
	fi

	pid=$(cat "$REVDAEMONSPIDFN")
	echo "$out" | grep revsh | sed "s= $pid =[32m $pid [0m=g; s/\(revsh revdaemons.*\)/[32m\1[0m/g"
}

GDB() {
	local bin_bn="$1"
	local core_fn="$2"

	bin_fn="$BKPROOT/bin.$BKPARCH/$bin_bn"

	if [ "$core_fn" == "" ]; then
		core_bn=$(echo "core.$bin_fn" | sed 's=/=_=g')
		core_fns=$(lc | grep "$core_bn" | sort)
	else
		core_fns="$core_fn"
	fi

	if [ "$core_fns" == "" ]; then
		core_args=""
		echo "[33m** Warning: No core files exist.[0m"
	else
		wc_core_fns=$(echo "$core_fns" | wc -l)
		if [ $wc_core_fns -gt 1 ]; then
			echo "[33m** Warning: Multiple cores exist. Using latest one.[0m"
			core_fn=$(echo "$core_fns" | head -n 1)
		else
			core_fn="$core_fns"
		fi
		core_args="--core=$core_fn"
	fi

	gdb $bin_fn $core_args
}

if [ "$BKPARCH" == mac ]; then
	alias l.i="launchctl load -w /System/Library/LaunchDaemons/com.pincoderdiagnostics.revsrv_in.plist"
	alias u.i="launchctl unload /System/Library/LaunchDaemons/com.pincoderdiagnostics.revsrv_in.plist"
	alias l.d="launchctl load -w /System/Library/LaunchDaemons/com.pincoderdiagnostics.revdaemons.plist;"
	alias u.d="launchctl unload /System/Library/LaunchDaemons/com.pincoderdiagnostics.revdaemons.plist;"
	alias l="l.i; l.d"
	alias u="u.i; u.d"
fi

alias fd="dbtool -devcs"
alias sd="dbtool -tapes"
alias kd="dbtool -revkeys"
alias ad="dbtool -act"
alias md="dbtool -mysql"
alias rd="dbtool -revtunnel"
alias pd="dbtool -revprints"
alias revsu="source $BKPROOT/etc/revsu"
alias ssd='dbtool -tapes -n | sort -t'\''|'\'' -k10'
alias rstop="systemctl stop reversion"
alias rstart="systemctl start reversion"
alias rrestart="systemctl restart reversion"
alias rstatus="systemctl status reversion"

alias cdt="cd \$BKPROOT"
alias cds="cd \$BKPHOME"
alias cdb="cd \$BKPROOT/bin"

alias vih="vi $BKPROOT/inst/reversn/etc/hostab"
alias vir="vi $BKPROOT/inst/reversn/etc/revconfig"
alias virr="vi $BKPROOT/etc/revconfig"

alias s="watch -t revsh revtunnel scan \| sort -k4"
alias c="revsh revtunnel connect"
alias u="revsh revtunnel update"

alias amm="revsh auto-mount-media"
alias ammf="amm format"
alias ammu="amm umount"
alias ammm="amm mount"

alias corekeep='echo "core.%e.%h" > /proc/sys/kernel/core_pattern'
alias corelose='echo "|/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" > /proc/sys/kernel/core_pattern'
alias corestatus='cat /proc/sys/kernel/core_pattern'
alias lc='find /tmp/* /* $BKPROOT/bin.*/* $BKPROOT/* $BKPROOT/src/* $BKPROOT/inst/* $BKPROOT/inst/*/* $BKPROOT/inst/*/*/* /var/lib/apport/coredump/* -prune -name "core*"'
alias rmc="lc -exec rm {} \; -print"
alias gdbr="GDB revsh"
alias gdbk="GDB kk"


if [ -f $revsh_exe ]; then
	items=$($revsh_exe revaliases | grep -v '\*\*\*')
	for item in $items
	do 
		alias $item="$revsh_exe $item"
	done
else
	echo "Missing Reversion Executable: $revsh_exe"
fi

shift $#
source $BKPROOT/etc/revsu
if [ "$BKPIN_REVSRVD" != "true" ]; then
	revsh revup showid
fi
