mirror of
https://github.com/DictXiong/dotfiles.git
synced 2025-04-25 06:57:06 +08:00
54 lines
1.4 KiB
Bash
54 lines
1.4 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
ARG=""
|
|
GOT_OPTS=()
|
|
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
|
|
|
|
# install TODO: multiple users; remove -a after installed for the first user
|
|
if command -v su 1>/dev/null && test -n "$DFS_USER" && test "$DFS_USER" != "$(whoami)"; then
|
|
SUCMD="su $DFS_USER"
|
|
else
|
|
SUCMD="bash"
|
|
fi
|
|
$SUCMD << EOF
|
|
cd
|
|
if [[ ! -f ~/dotfiles/install.sh ]]; then
|
|
git clone https://gitee.com/dictxiong/dotfiles
|
|
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 |