mirror of
https://github.com/DictXiong/dotfiles.git
synced 2024-11-24 15:37:05 +08:00
Dict Xiong
8fdd3c477f
* riot: bj1 -> proxy * ci: test ask_for_yn * --wip-- [skip ci] * install.sh: will prompt version * zshrc: piv-agent now can re-use agents * zshrc: in docker use theme robbyrussell * update.sh: will send online beacon * beacon: support meta with limited len 64 * bug fix (Sat Jan 21 16:45:35 CST 2023) * well, finally add ssh key for ltp1-bd * set DFS_INITED and do not send login beacon if it was set * rewrite piv-agent to sagent; fmt_note and fmt_into will write to stderr * bug fix (Mon Jan 30 19:41:00 CST 2023) * bug fix (Mon Jan 30 19:46:27 CST 2023) * login beacon add details * $DFS_ORPHAN turns logger off * disable more beacons in CI * install.sh: prepare config earlier * init pbin * install.sh: -H|--hist|--history * install.sh: -H hint * install.sh: -H support multiple keys * fix zsh hist with no new line at the end * remove ^M in hist * bug fix (Wed Feb 1 21:11:41 CST 2023) * bug fix (Wed Feb 1 21:16:29 CST 2023) * bug fix (Wed Feb 1 21:20:21 CST 2023) * ci will send gh.ci.fail * show install opts * DFS_DEBUG to set -x * bug fix: install.sh re-start itself with no args incorrectly * bug fix (Thu Feb 2 18:43:16 CST 2023) * riot: ob->ebd, swap option $1 and $2 and $2 is default to ssh * riot: introduce sshl * logger.sh: support ddns * bug fix (Wed Mar 1 16:37:42 CST 2023) * dfs.ddns.failed -> dfs.ddns.fail * login beacon 2>/dev/null * logger.sh -> frigg-client.sh; curl add time limit 10s * to-install.sh: improve docker-ce * use $DFS_CURL_OPTIONS * ci: add ddns * bug fix (Wed Mar 15 19:37:21 CST 2023) * Revert "bug fix (Wed Mar 15 19:37:21 CST 2023)" This reverts commit2df87ce1a8
. * Revert "ci: add ddns" This reverts commit4fe8321504
. * alias cbd and cbds, riot nasp port to 12022 * .zshrc: sagent -> sagt * fix ci * riot: bug fix when 'tmp' has leading zeros * add ci for cbds --------- Co-authored-by: xiongdian.me <xiongdian.me@bytedance.com>
105 lines
1.8 KiB
Bash
Executable File
105 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
THIS_DIR=$( cd "$( dirname "${BASH_SOURCE[0]:-${(%):-%x}}" )" && pwd )
|
|
export DFS_COLOR=1
|
|
source "$THIS_DIR/common.sh"
|
|
|
|
|
|
find_so_file()
|
|
{
|
|
local SO_PATHS=( "/usr/lib64/opensc-pkcs11.so" "/usr/local/lib/opensc-pkcs11.so" )
|
|
local SO_FILE
|
|
for SO_FILE in ${SO_PATHS[*]}; do
|
|
if [[ -f "$SO_FILE" ]]; then
|
|
echo "$SO_FILE"
|
|
return
|
|
fi
|
|
done
|
|
}
|
|
|
|
create_agent()
|
|
{
|
|
local SO_FILE=$(find_so_file)
|
|
if [[ -n "$SO_FILE" ]]; then
|
|
fmt_note "opensc-pkcs11.so found"
|
|
SO_FILE="-P $SO_FILE"
|
|
fi
|
|
ssh-agent $SO_FILE
|
|
}
|
|
|
|
kill_agent()
|
|
{
|
|
if pgrep -x ssh-agent > /dev/null; then
|
|
fmt_note "killing existing agent"
|
|
pkill -9 -x ssh-agent
|
|
fi
|
|
}
|
|
|
|
add_piv()
|
|
{
|
|
local SO_FILE=$(find_so_file)
|
|
if [[ -n "$SO_FILE" ]]; then
|
|
echo ssh-add -s \"$SO_FILE\"
|
|
else
|
|
fmt_error "opensc-pkcs11.so not found"
|
|
fi
|
|
list
|
|
}
|
|
|
|
list()
|
|
{
|
|
echo echo "available keys:"
|
|
echo ssh-add -l
|
|
}
|
|
|
|
reset()
|
|
{
|
|
kill_agent
|
|
all
|
|
}
|
|
|
|
all()
|
|
{
|
|
local agent_file="/tmp/piv-agent-$(whoami)"
|
|
if [[ -f $agent_file ]]; then
|
|
source $agent_file > /dev/null
|
|
else
|
|
touch $agent_file
|
|
chmod 600 $agent_file
|
|
fi
|
|
if ! ps -p "$SSH_AGENT_PID" 1>/dev/null 2>&1; then
|
|
kill_agent
|
|
fmt_note "launching a new agent"
|
|
create_agent | tee $agent_file
|
|
else
|
|
fmt_note "using existing agent: $SSH_AGENT_PID"
|
|
cat $agent_file
|
|
fi
|
|
}
|
|
|
|
route()
|
|
{
|
|
if [[ $# -eq 0 ]]; then
|
|
all
|
|
return
|
|
fi
|
|
case $1 in
|
|
kill)
|
|
kill_agent
|
|
;;
|
|
piv)
|
|
add_piv
|
|
;;
|
|
reset)
|
|
reset
|
|
;;
|
|
list|ls)
|
|
list
|
|
;;
|
|
*)
|
|
fmt_error "unknown command: $1"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
route "$@" |