diff --git a/.gitconfig2 b/.gitconfig2 new file mode 100644 index 0000000..ba6799e --- /dev/null +++ b/.gitconfig2 @@ -0,0 +1,3 @@ +[user] + email = me@beardic.cn + name = Dict Xiong diff --git a/.zshrc2 b/.zshrc2 index 5870919..95622cd 100644 --- a/.zshrc2 +++ b/.zshrc2 @@ -42,19 +42,27 @@ fi source "$ANTIGEN" antigen use oh-my-zsh # enable plugins -antigen bundle command-not-found -antigen bundle docker -antigen bundle extract -antigen bundle fzf -antigen bundle git -antigen bundle ripgrep -antigen bundle thefuck -antigen bundle tmux -antigen bundle ufw -antigen bundle z -antigen bundle https://gitee.com/dictxiong/zsh-syntax-highlighting -antigen bundle https://gitee.com/dictxiong/zsh-completions -antigen bundle https://gitee.com/dictxiong/zsh-autosuggestions +antigen_plugins=( \ + "command-not-found" \ + "docker" \ + "extract" \ + "fzf" \ + "git" \ + "ripgrep" \ + "thefuck" \ + "tmux" \ + "ufw" \ + "z" \ + "https://gitee.com/dictxiong/zsh-syntax-highlighting" \ + "https://gitee.com/dictxiong/zsh-completions" \ + "https://gitee.com/dictxiong/zsh-autosuggestions" \ +) +for i in ${antigen_plugins[*]} +do + if [[ -z $ANTIGEN_EXCLUDE || ! $i =~ $ANTIGEN_EXCLUDE ]]; then + antigen bundle $i + fi +done # select theme antigen theme ${ZSH_THEME:-ys} # apply @@ -67,6 +75,7 @@ dfs() { case $1 in update ) (cd "$DOTFILES" && git pull) ;; + force-update ) (cd "$DOTFILES" && git fetch --all && git reset --hard origin/main && git pull) ;; reset ) antigen reset 1> /dev/null rm -rf $HOME/.antigen @@ -76,7 +85,7 @@ dfs() echo 'Done. Please open a new shell to see the changes.' ;; cd ) cd "$DOTFILES" ;; - * ) echo "unknown command \"$1\". available: update, reset, cd" ;; + * ) echo "unknown command \"$1\". available: update, force-update, reset, cd" ;; esac } diff --git a/install.sh b/install.sh index 76c5c41..a2fc5b8 100755 --- a/install.sh +++ b/install.sh @@ -115,6 +115,7 @@ insert_if_not_exist() filename=$1 line=$2 fmt_note "installing \"$line\" into \"$filename\" ..." + mkdir -p $(dirname "$filename") if [ ! -f "$filename" ]; then touch $filename fi @@ -140,6 +141,7 @@ create_symlink() fmt_error "\"$src\" does not exist! aborting this job ..." return 1 fi + mkdir -p $(dirname "$dest") if [ -f "$dest" ]; then if [ "$(readlink $dest)" -ef "$src" ]; then return 0 @@ -188,11 +190,11 @@ install_tmux_tpm(){ if [[ -x $(command -v tmux) && ! -d "$TMUX_TPM" ]]; then fmt_note "installing tmux tpm ..." git clone https://hub.fastgit.xyz/tmux-plugins/tpm "$TMUX_TPM" - if [[ -x $(command -v g++) && -x $(command -v cmake) ]]; then + if [[ -x $(command -v g++) && -x $(command -v cmake) && -x $(command -v make) ]]; then fmt_note "initializing tmux plugins ..." ~/.tmux/plugins/tpm/bin/install_plugins else - fmt_warning "pls install g++ and cmake and then init tmux plugins by " + fmt_warning "pls install g++,cmake,make and then init tmux plugins by or ~/.tmux/plugins/tpm/bin/install_plugins" fi fi } @@ -212,6 +214,7 @@ install(){ insert_if_not_exist "${HOME}/.zshrc" "source ${dotfile_home_path}/.zshrc2" insert_if_not_exist "${HOME}/.tmux.conf" "source-file ${dotfile_home_path}/.tmux.conf2" insert_if_not_exist "${HOME}/.vimrc" "source ${dotfile_home_path}/.vimrc2" + insert_if_not_exist "${HOME}/.gitconfig" "[include] path = \"${dotfile_home_path}/.gitconfig2\"" create_symlink "${dotfile_path}/.ssh/authorized_keys2" "${HOME}/.ssh/authorized_keys2" # those that won't be uninstalled in the future install_tmux_tpm @@ -226,6 +229,7 @@ uninstall(){ delete_if_exist "${HOME}/.zshrc" "source ${dotfile_home_path}/.zshrc2" delete_if_exist "${HOME}/.tmux.conf" "source-file ${dotfile_home_path}/.tmux.conf2" delete_if_exist "${HOME}/.vimrc" "source ${dotfile_home_path}/.vimrc2" + delete_if_exist "${HOME}/.gitconfig" "[include] path = \"${dotfile_home_path}/.gitconfig2\"" delete_link_if_match "${dotfile_path}/.ssh/authorized_keys2" "${HOME}/.ssh/authorized_keys2" fmt_note "done uninstalling!" fi diff --git a/tools/alpine.sh b/tools/alpine.sh new file mode 100755 index 0000000..031b9bb --- /dev/null +++ b/tools/alpine.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +if [[ $USER != "root" ]]; then + echo "must run as root!" + exit 1 +fi + +set_mirror() +{ + #MIRROR=${1:="mirrors.tuna.tsinghua.edu.cn"} + #MIRROR=${MIRROR//\//\\\/} + #sed -i 's/(archive|security).ubuntu.com/${MIRROR}/g' /etc/apt/sources.list + echo "to-do ..." +} + +apk_add() +{ + apk update + + # mass installation + apk add zsh git tmux vim curl wget bash python3 htop gcc g++ cmake make fzf perl linux-headers bind-tools iputils man-db + #for i in {fzf,ripgrep}; do apk add $i -y; done + + # who am i + git config --global user.email "me@beardic.cn" + git config --global user.name "Dict Xiong" +} + +set_timezone() +{ + apk update + apk add tzdata + cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + echo "Asia/Shanghai" > /etc/timezone +} + +router() +{ + case $1 in + apk-add ) apk_add ;; + set-timezone | set-tz ) set_timezone ;; + #set-mirror ) set_mirror $2 ;; + * ) echo unknown command "$1". available: apk-add, set-timezone;; + esac +} + +router $@ diff --git a/tools/install.sh b/tools/install.sh index 8e43bb0..0b8cd5f 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -10,6 +10,7 @@ install_commands=(\ [v2ray]="bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh) #--remove" \ [zerotier-one]='curl -s https://install.zerotier.com | sudo bash' \ [docker-ce]='curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh #--mirror Aliyun #--dry-run' \ + [lemonbench]='curl -fsSL https://ilemonra.in/LemonBenchIntl | bash -s fast # or full' \ ) install() diff --git a/tools/ubuntu.sh b/tools/ubuntu.sh index 0f8e0f6..090b965 100755 --- a/tools/ubuntu.sh +++ b/tools/ubuntu.sh @@ -5,36 +5,43 @@ if [[ $USER != "root" ]]; then exit 1 fi -init() +set_mirror() +{ + MIRROR=${1:-"mirrors.tuna.tsinghua.edu.cn"} + MIRROR=${MIRROR//\//\\\/} + sed -i 's/(archive|security).ubuntu.com/${MIRROR}/g' /etc/apt/sources.list +} + +apt_install() { # basic packages apt update for i in {man-db,vim,ca-certificates}; do apt install $i -y; done - # apt source - ${MIRROR:="mirrors.tuna.tsinghua.edu.cn"} - MIRROR=${MIRROR//\//\\\/} - sed -i 's/(archive|security).ubuntu.com/${MIRROR}/g' /etc/apt/sources.list - # mass installation apt update - apt install git tmux zsh curl wget dialog net-tools dnsutils netcat traceroute sudo python3 python3-pip cron inetutils-ping openssh-client openssh-server htop gcc g++ cmake + apt install git tmux zsh curl wget dialog net-tools dnsutils netcat traceroute sudo python3 python3-pip cron inetutils-ping openssh-client openssh-server htop gcc g++ cmake make for i in {fzf,ripgrep}; do apt install $i -y; done - # custom dotfiles (usually not needed) - mkdir -p ~/.ssh - # cd ~ && git clone https://gitee.com/dictxiong/dotfiles && ./dotfiles/install.sh - # who am i git config --global user.email "me@beardic.cn" git config --global user.name "Dict Xiong" } +set_timezone() +{ + TIMEZONE=${1:-"Asia/Shanghai"} + timedatectl set-timezone "$TIMEZONE" +} + router() { case $1 in - init ) init ;; - * ) echo unknown command "$1". available: init ;; + apt-install ) apt_install ;; + set-mirror ) set_mirror $2 ;; + set-timezone\ + | set-tz ) set_timezone $2 ;; + * ) echo unknown command "$1". available: apt-install, set-mirror, set-timezone;; esac }