feat: add auto install shell script

This commit is contained in:
🐟 2023-09-13 16:56:40 +08:00
parent 4e0684b50f
commit 0abefb4054
2 changed files with 34 additions and 41 deletions

View File

@ -1,6 +1,6 @@
AS=./install-alias.sh AS=./install-alias.sh
OS=./install-oh-my-zsh.sh OS=./install-oh-my-zsh.sh
SHELL=env zsh
install: install:
@ -10,4 +10,6 @@ ohm:
chmod +x $(OS) chmod +x $(OS)
$(OS) $(OS)
alias: chmod +x $(AS) && $(AS) alias:
chmod +x $(AS)
$(SHELL) $(AS)

67
install-alias.sh Normal file → Executable file
View File

@ -1,45 +1,36 @@
# shellcheck shell=ksh # shellcheck shell=ksh
rc_file="$HOME/.zshrc"
alias_init_file="$HOME/alias.d/.init"
AHome="$HOME/alias.d" # if rc_file contains "sourece $alias_init_file" 询问是否覆盖
if [ ! -f "$AHome" ];then
echo "将创建 ~/.alias.d 用于存放自定义快捷方式"
mkdir "$AHome" _check() {
if grep -q "source $alias_init_file" "$rc_file"; then
# 如果包含,则询问是否覆盖
echo "看起来设备已经安装 alias, $rc_file 中包含 source $alias_init_file"
echo -n "请输入y/n:"
read -r _continue
echo "in >> $_continue"
case "$_continue" in
y | Y) # 如果输入 y 或 Y则用 sed 命令删除 source $alias_init_file 这一行
sed -i "/source $alias_init_file/d" $rc_file
echo "覆盖 source $alias_init_file"
;;
*)
echo "退出安装"
exit 3
;;
esac
fi fi
init_shell="$AHome/.init" echo "安装 alias.d 正在自动配置环境变量... source $alias_init_file"
echo alias in "$AHome" }
echo "" > "$init_shell"
echo '# set PATH so it includes user`s private bin if it exists' >> "$init_shell" _install() {
echo 'if [ -d "$HOME/bin" ] ; then' >> "$init_shell" rsync -a --backup --suffix=.bak ./alias.d "$HOME/"
echo ' PATH="$HOME/bin:$PATH"' >> "$init_shell" echo "install success, enjoy it!"
echo 'fi' >> "$init_shell" source "$alias_init_file"
echo '' >> "$init_shell" }
echo '# set PATH so it includes user`s private bin if it exists' >> "$init_shell"
echo 'if [ -d "$HOME/.local/bin" ] ; then' >> "$init_shell"
echo ' PATH="$HOME/.local/bin:$PATH"' >> "$init_shell"
echo 'fi' >> "$init_shell"
echo '' >> "$init_shell"
echo '# set PATH so it includes user`s private bin if it exists' >> "$init_shell"
echo 'if [ -d "$HOME/go/bin" ] ; then' >> "$init_shell"
echo ' PATH="$HOME/go/bin:$PATH"' >> "$init_shell"
echo 'fi' >> "$init_shell"
echo "setopt no_nomatch" >> "$init_shell"
echo '# 遍历' >> "$init_shell" _check
echo '# for item in `ls ~/.alias.d/*.sh`; do' >> "$init_shell" _install
echo '# source $item' >> "$init_shell"
echo '# done' >> "$init_shell"
echo 'export AHome="$HOME"/.alias.d' >> "$init_shell"
echo 'for ali in "$AHome"/*.sh' >> "$init_shell"
echo 'do' >> "$init_shell"
echo ' [[ -e "$ali" ]] || break # 无 alias 停止' >> "$init_shell"
echo ' source "$ali"' >> "$init_shell"
echo 'done' >> "$init_shell"
echo "#common config" >> "$init_shell"
echo "alias va='vim ~/.alias.d'" >> "$init_shell"
echo "alias vz='vim ~/.zshrc'" >> "$init_shell"
echo "alias rez='source ~/.zshrc'" >> "$init_shell"
echo "source "$init_shell"" >> ~/.zshrc