-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·98 lines (81 loc) · 2.41 KB
/
Copy pathinstall.sh
File metadata and controls
executable file
·98 lines (81 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/env bash
# TimeToSleep installer
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/lib/ui.sh"
clear 2>/dev/null || true
ui_moon
ui_print " ${BOLD}安装 TimeToSleep${RESET}"
ui_blank
# ── 1. Check prerequisites ──
ui_step "检查环境..."
if [[ "$(uname)" != "Darwin" ]]; then
ui_error "TimeToSleep 目前只支持 macOS"
exit 1
fi
if ! command -v python3 &>/dev/null; then
ui_error "需要 Python 3(macOS 通常自带)"
exit 1
fi
ui_success "环境检查通过"
# ── 2. Create install directory ──
INSTALL_DIR="$HOME/.timetosleep"
ui_step "创建安装目录..."
mkdir -p "$INSTALL_DIR/bin"
mkdir -p "$INSTALL_DIR/lib"
mkdir -p "$INSTALL_DIR/src"
# ── 3. Copy files ──
ui_step "安装文件..."
cp -r "$SCRIPT_DIR/lib/"* "$INSTALL_DIR/lib/"
cp -r "$SCRIPT_DIR/src/"* "$INSTALL_DIR/src/"
cp "$SCRIPT_DIR/bin/zzz" "$INSTALL_DIR/bin/zzz"
cp "$SCRIPT_DIR/bin/zzz-overlay" "$INSTALL_DIR/bin/zzz-overlay"
chmod +x "$INSTALL_DIR/bin/zzz"
chmod +x "$INSTALL_DIR/bin/zzz-overlay"
chmod +x "$INSTALL_DIR/src/daemon.sh"
chmod +x "$INSTALL_DIR/src/bootcheck.sh"
# ── 4. Create symlink ──
ui_step "创建 zzz 命令..."
LINKED=false
# Try /usr/local/bin first
if [ -w "/usr/local/bin" ]; then
ln -sf "$INSTALL_DIR/bin/zzz" "/usr/local/bin/zzz"
ui_success "已安装到 /usr/local/bin/zzz"
LINKED=true
fi
# Fallback: add to PATH via shell profile
if [ "$LINKED" = false ]; then
for rc in "$HOME/.zshrc" "$HOME/.bashrc" "$HOME/.bash_profile"; do
if [ -f "$rc" ]; then
if ! grep -q '.timetosleep/bin' "$rc" 2>/dev/null; then
echo '' >> "$rc"
echo '# TimeToSleep' >> "$rc"
echo 'export PATH="$HOME/.timetosleep/bin:$PATH"' >> "$rc"
fi
LINKED=true
break
fi
done
if [ "$LINKED" = false ]; then
echo '# TimeToSleep' >> "$HOME/.zshrc"
echo 'export PATH="$HOME/.timetosleep/bin:$PATH"' >> "$HOME/.zshrc"
LINKED=true
fi
export PATH="$HOME/.timetosleep/bin:$PATH"
ui_success "已添加到 PATH(重启终端或 source ~/.zshrc 生效)"
fi
# ── 5. Done ──
ui_blank
ui_box "$(printf '%b\n' \
"${C_GREEN}${BOLD}安装完成!${RESET}" \
"" \
"即将进入早睡契约设置...")"
ui_blank
sleep 1
# ── 6. Launch onboarding in a visible Terminal window ──
osascript -e "
tell application \"Terminal\"
activate
do script \"'$INSTALL_DIR/bin/zzz' init\"
end tell
"