fix: merge
This commit is contained in:
@@ -1,9 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd ~/Downloads/
|
||||
wget https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip
|
||||
|
||||
echo '1. unzip Fira_Code_v6.2.zip'
|
||||
echo '2. select all file and install it'
|
||||
|
||||
open ~/Downloads/
|
||||
@@ -0,0 +1,104 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import sys
|
||||
import platform
|
||||
import subprocess
|
||||
from typing import Dict, List, Optional
|
||||
import urllib.request
|
||||
import zipfile
|
||||
import shutil
|
||||
|
||||
def get_font_dir() -> str:
|
||||
"""根据操作系统确定字体安装目录"""
|
||||
system = platform.system()
|
||||
if system == "Darwin": # macOS
|
||||
return os.path.expanduser("~/Library/Fonts")
|
||||
elif system == "Linux":
|
||||
return os.path.expanduser("~/.local/share/fonts")
|
||||
else:
|
||||
raise OSError(f"不支持的操作系统: {system}")
|
||||
|
||||
def check_command(command: str) -> bool:
|
||||
"""检查命令是否存在"""
|
||||
return shutil.which(command) is not None
|
||||
|
||||
def download_file(url: str, dest_path: str) -> None:
|
||||
"""下载文件到指定路径"""
|
||||
try:
|
||||
urllib.request.urlretrieve(url, dest_path)
|
||||
except Exception as e:
|
||||
print(f"下载失败: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
def get_top_level_dirs(zip_file: zipfile.ZipFile) -> List[str]:
|
||||
"""获取 ZIP 文件中的顶级目录"""
|
||||
return list(set(item.split('/')[0] for item in zip_file.namelist() if '/' in item))
|
||||
|
||||
def has_single_top_dir(zip_file: zipfile.ZipFile) -> bool:
|
||||
"""检查 ZIP 文件是否只有一个顶级目录"""
|
||||
top_dirs = get_top_level_dirs(zip_file)
|
||||
return len(top_dirs) == 1 and all(name.startswith(top_dirs[0] + '/') for name in zip_file.namelist())
|
||||
|
||||
|
||||
def unzip_file(zip_path: str, font_name: str) -> None:
|
||||
"""解压文件到指定路径,根据 ZIP 文件结构决定是否创建顶级目录"""
|
||||
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
|
||||
if has_single_top_dir(zip_ref):
|
||||
# ZIP 文件有单一顶级目录,直接解压
|
||||
zip_ref.extractall("/tmp")
|
||||
print(f"已解压 {font_name} 到现有顶级目录")
|
||||
else:
|
||||
# 没有单一顶级目录,创建一个以字体名命名的目录
|
||||
font_dir = os.path.join("/tmp", font_name)
|
||||
os.makedirs(font_dir, exist_ok=True)
|
||||
for file in zip_ref.namelist():
|
||||
if not file.startswith('__MACOSX'): # 排除 macOS 系统文件
|
||||
zip_ref.extract(file, font_dir)
|
||||
print(f"已解压 {font_name} 并创建新的顶级目录")
|
||||
|
||||
|
||||
def install_font(font_name: str, font_dir: str) -> None:
|
||||
"""安装字体到指定目录"""
|
||||
# find ttf files to copy to the font_dir
|
||||
ttf_files = [file for file in os.listdir(f"/tmp/{font_name}") if file.endswith(".ttf")]
|
||||
for ttf_file in ttf_files:
|
||||
shutil.copy(f"/tmp/{font_name}/{ttf_file}", font_dir)
|
||||
print(f"已安装 {font_name} 到 {font_dir}")
|
||||
|
||||
def refresh_font_cache() -> None:
|
||||
"""在 Linux 系统上刷新字体缓存"""
|
||||
if platform.system() == "Linux" and check_command("fc-cache"):
|
||||
subprocess.run(["fc-cache", "-f"])
|
||||
print("字体缓存已刷新。")
|
||||
else:
|
||||
print("警告:无法刷新字体缓存。您可能需要手动刷新。")
|
||||
|
||||
def main() -> None:
|
||||
fonts: Dict[str, str] = {
|
||||
"SarasaNerd":"https://github.com/jonz94/Sarasa-Gothic-Nerd-Fonts/releases/download/v1.0.23-0/sarasa-fixed-sc-nerd-font.zip",
|
||||
"FiraCode": "https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip"
|
||||
}
|
||||
|
||||
try:
|
||||
font_dir = get_font_dir()
|
||||
except OSError as e:
|
||||
print(str(e))
|
||||
sys.exit(1)
|
||||
|
||||
os.makedirs(font_dir, exist_ok=True)
|
||||
|
||||
for font in fonts:
|
||||
print(f"正在下载和安装 {font}...")
|
||||
zip_path = f"/tmp/{font}.zip"
|
||||
download_file(fonts[font], zip_path)
|
||||
unzip_file(zip_path, font)
|
||||
install_font(font, font_dir)
|
||||
os.remove(zip_path)
|
||||
|
||||
refresh_font_cache()
|
||||
print("安装完成。请重启您的终端或应用程序以使用新字体。")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 定义变量
|
||||
NVIM_CONFIG_DIR="$HOME/.config/nvim"
|
||||
YOUR_CUSTOM_CONFIG_DIR="$HOME/.dotfile/nvim" # 请替换为您的自定义配置目录路径
|
||||
|
||||
# 检查软链接是否已经存在并指向正确的目录
|
||||
if [ -L "$NVIM_CONFIG_DIR" ] && [ "$(readlink -f "$NVIM_CONFIG_DIR")" = "$(readlink -f "$YOUR_CUSTOM_CONFIG_DIR")" ]; then
|
||||
echo "软链接已经存在并指向正确的目录。无需进行任何操作。"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 检查是否存在现有的 Neovim 配置
|
||||
if [ -e "$NVIM_CONFIG_DIR" ]; then
|
||||
echo "检测到现有的 Neovim 配置。"
|
||||
|
||||
# 如果是目录或常规文件,创建备份
|
||||
if [ -d "$NVIM_CONFIG_DIR" ] || [ -f "$NVIM_CONFIG_DIR" ]; then
|
||||
BACKUP_DIR="$NVIM_CONFIG_DIR.backup.$(date +%Y%m%d%H%M%S)"
|
||||
mv "$NVIM_CONFIG_DIR" "$BACKUP_DIR"
|
||||
echo "已将现有配置备份到 $BACKUP_DIR"
|
||||
else
|
||||
# 如果是其他类型的文件(如损坏的软链接),直接删除
|
||||
rm "$NVIM_CONFIG_DIR"
|
||||
echo "已删除现有的无效配置。"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 创建软链接
|
||||
ln -s "$YOUR_CUSTOM_CONFIG_DIR" "$NVIM_CONFIG_DIR"
|
||||
|
||||
# 检查软链接是否创建成功
|
||||
if [ -L "$NVIM_CONFIG_DIR" ] && [ "$(readlink -f "$NVIM_CONFIG_DIR")" = "$(readlink -f "$YOUR_CUSTOM_CONFIG_DIR")" ]; then
|
||||
echo "软链接创建成功。Neovim 现在将使用您的自定义配置。"
|
||||
else
|
||||
echo "创建软链接时出错。请检查路径和权限。"
|
||||
fi
|
||||
|
||||
+10
-5
@@ -1,30 +1,35 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# install neovim
|
||||
os_arch=$(uname -s)-$(uname -m)
|
||||
ver=v0.10.2
|
||||
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "need sudo"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case $os_arch in
|
||||
"Darwin-x86_64")
|
||||
cd /tmp
|
||||
rm -rf nvim-macos-x86_64.tar.gz
|
||||
wget https://github.com/neovim/neovim/releases/download/$ver/nvim-macos-x86_64.tar.gz
|
||||
tar zxf nvim-macos-x86_64.tar.gz
|
||||
sudo mv -f /usr/local/nvim /usr/local/nvim-bak
|
||||
sudo mv nvim-macos-x86_64 /usr/local/nvim
|
||||
sudo ln -sf /usr/local/nvim/bin/nvim /usr/local/bin/vim
|
||||
sudo ln -sf /usr/local/nvim/bin/nvim /usr/local/bin/nvim
|
||||
echo ""
|
||||
vim -v
|
||||
;;
|
||||
"Linux-x86_64"|"Linux-arm64")
|
||||
cd /tmp
|
||||
rm -rf nvim-linux64.tar.gz
|
||||
wget https://github.com/neovim/neovim/releases/download/$ver/nvim-linux64.tar.gz
|
||||
tar zxf nvim-linux64.tar.gz
|
||||
sudo mv -f /usr/local/nvim /usr/local/nvim-bak
|
||||
sudo mv nvim-linux64 /usr/local/nvim
|
||||
sudo ln -sf /usr/local/nvim/bin/nvim /usr/local/bin/vim
|
||||
sudo ln -sf /usr/local/nvim/bin/nvim /usr/local/bin/nvim
|
||||
echo ""
|
||||
vim -v
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# 设置颜色
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 检查是否已安装 pyenv
|
||||
if ! command -v pyenv &> /dev/null
|
||||
then
|
||||
echo -e "${RED}pyenv 未安装. 正在安装 pyenv...${NC}"
|
||||
# 安装 pyenv
|
||||
curl https://pyenv.run | bash
|
||||
source ~/.config/fish/config.fish
|
||||
else
|
||||
echo -e "${GREEN}pyenv 已安装${NC}"
|
||||
fi
|
||||
|
||||
# 询问用户想安装的 Python 版本
|
||||
python_version=3.11.10
|
||||
|
||||
# 安装指定版本的 Python
|
||||
echo -e "${GREEN}正在安装 Python $python_version...${NC}"
|
||||
pyenv install $python_version
|
||||
|
||||
# 设置全局 Python 版本
|
||||
pyenv global $python_version
|
||||
|
||||
# 验证安装
|
||||
installed_version=$(python --version)
|
||||
echo -e "${GREEN}Python 安装完成. 当前版本: $installed_version${NC}"
|
||||
|
||||
# 安装一些常用的 Python 包
|
||||
echo -e "${GREEN}正在安装一些常用的 Python 包...${NC}"
|
||||
pip install --upgrade pip
|
||||
pip install ipython jupyter notebook pandas numpy matplotlib scikit-learn
|
||||
|
||||
echo -e "${GREEN}Python 环境设置完成!${NC}"
|
||||
Reference in New Issue
Block a user