feat: add auto install shell script
This commit is contained in:
parent
4e0684b50f
commit
0abefb4054
6
Makefile
6
Makefile
@ -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
67
install-alias.sh
Normal file → Executable 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
|
|
Loading…
Reference in New Issue
Block a user