mirror of
https://github.com/DictXiong/dotfiles.git
synced 2024-11-24 11:17:02 +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>
64 lines
1.5 KiB
Bash
64 lines
1.5 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
ARG=""
|
|
GOT_OPTS=()
|
|
DFS_USER="$(whoami)"
|
|
while [[ $# > 0||-n "$ARG" ]];do
|
|
if [[ -z "$ARG" ]];then ARG=$1;shift;fi
|
|
case $ARG in
|
|
-s*|--secure)DFS_SECURE=1;;
|
|
-u*|--user)if [[ "$ARG" == --*=* ]];then
|
|
DFS_USER="${ARG#*=}"
|
|
else
|
|
DFS_USER=$1
|
|
shift
|
|
fi
|
|
if [[ -z "$DFS_USER" ]];then
|
|
echo "install user is required"
|
|
exit 1
|
|
fi;;
|
|
--*=*)GOT_OPTS+=("${ARG%%=*}" "${ARG#*=}");;
|
|
--*)GOT_OPTS+=("$ARG");;
|
|
-*)GOT_OPTS+=("${ARG:0:2}");;
|
|
*)GOT_OPTS+=("$ARG");;
|
|
esac
|
|
if [[ "$ARG" == "--"*||! "$ARG" == "-"*||${#ARG} -le 2 ]];then
|
|
ARG=""
|
|
else
|
|
ARG=-${ARG:2}
|
|
fi
|
|
done
|
|
IFS=',' read -r -a DFS_USERS<<<"$DFS_USER"
|
|
for u in "${DFS_USERS[@]}";do
|
|
if [[ -z "$u" ]];then
|
|
continue
|
|
fi
|
|
if ! id -u "$u" >/dev/null 2>&1;then
|
|
echo "user $u not exists"
|
|
exit 1
|
|
fi
|
|
if [[ "$u" == "$(whoami)" ]];then
|
|
SUCMD="bash"
|
|
else
|
|
SUCMD="su $u"
|
|
fi
|
|
echo "install for user $u in 3 seconds ..."
|
|
sleep 3
|
|
$SUCMD<<EOF
|
|
set -e
|
|
cd
|
|
if [[ ! -f ~/dotfiles/install.sh ]];then
|
|
git clone ${repo}
|
|
fi
|
|
if [[ "$DFS_SECURE" == "1" ]];then
|
|
echo "enter secure mode"
|
|
cd dotfiles
|
|
git fetch --all
|
|
git -c advice.detachedHead=false checkout $(curl -fsSL https://api.beardic.cn/get-var/dfs-commit-id)
|
|
cd
|
|
fi
|
|
./dotfiles/install.sh ${GOT_OPTS[@]}
|
|
zsh -c "source ~/.zshrc"
|
|
EOF
|
|
done
|