feat: CutThenThink v3.0 初始版本
完整实现 Tauri + Vanilla JS 轻量级截图工具 Phase 1 - 项目搭建 - Tauri 2.x 项目初始化 - Vite 前端项目搭建 - 基础 UI 框架(CSS 变量、组件库) - 构建配置优化 Phase 2 - 核心截图功能 - 全屏/区域/窗口截图 - 截图预览和管理 - 文件命名和缩略图 - 全局快捷键集成 Phase 3 - 上传与存储 - 多图床上传(GitHub/Imgur/自定义) - 配置管理系统 - SQLite 数据库 Phase 4 - OCR 集成 - 云端 OCR(百度/腾讯云) - 插件管理系统 - 本地 OCR 插件(Go) - OCR 结果处理 Phase 5 - AI 分类系统 - Claude/OpenAI API 集成 - Prompt 模板引擎 - 模板管理界面 - 自动分类流程 Phase 6 - 历史记录与管理 - 图库视图(网格/列表) - 搜索与筛选 - 批量操作 - 导出功能(JSON/CSV/ZIP) Phase 7 - 打包与发布 - 多平台构建配置 - CI/CD 工作流 - 图标和资源 - 安装包配置 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
81
scripts/build.sh
Normal file
81
scripts/build.sh
Normal file
@@ -0,0 +1,81 @@
|
||||
#!/bin/bash
|
||||
# Build script for CutThenThink Lite
|
||||
set -e
|
||||
|
||||
echo "Building CutThenThink Lite..."
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Detect OS
|
||||
OS="unknown"
|
||||
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
OS="linux"
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
OS="macos"
|
||||
elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "win32" ]]; then
|
||||
OS="windows"
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}Detected OS: $OS${NC}"
|
||||
|
||||
# Check dependencies
|
||||
if [ "$OS" == "linux" ]; then
|
||||
echo -e "${YELLOW}Checking Linux dependencies...${NC}"
|
||||
|
||||
# Check if running as root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo -e "${YELLOW}Note: Some dependencies may require sudo${NC}"
|
||||
fi
|
||||
|
||||
# Check for required packages
|
||||
MISSING=()
|
||||
for pkg in libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf; do
|
||||
if ! dpkg -l | grep -q "$pkg"; then
|
||||
MISSING+=("$pkg")
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${#MISSING[@]} -gt 0 ]; then
|
||||
echo -e "${RED}Missing dependencies: ${MISSING[*]}${NC}"
|
||||
echo -e "${YELLOW}Install them with:${NC}"
|
||||
echo "sudo apt-get install -y ${MISSING[*]}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}All dependencies installed${NC}"
|
||||
fi
|
||||
|
||||
# Check Node.js
|
||||
if ! command -v node &> /dev/null; then
|
||||
echo -e "${RED}Node.js is not installed${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check npm
|
||||
if ! command -v npm &> /dev/null; then
|
||||
echo -e "${RED}npm is not installed${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check Rust/Cargo
|
||||
if ! command -v cargo &> /dev/null; then
|
||||
echo -e "${RED}Rust/Cargo is not installed${NC}"
|
||||
echo -e "${YELLOW}Install from: https://rustup.rs/${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}Installing Node dependencies...${NC}"
|
||||
npm ci
|
||||
|
||||
echo -e "${GREEN}Building frontend...${NC}"
|
||||
npm run build
|
||||
|
||||
echo -e "${GREEN}Building Tauri application...${NC}"
|
||||
npm run tauri build
|
||||
|
||||
echo -e "${GREEN}Build complete!${NC}"
|
||||
echo -e "Output directory: src-tauri/target/release/bundle/"
|
||||
Reference in New Issue
Block a user