-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·84 lines (70 loc) · 1.85 KB
/
install.sh
File metadata and controls
executable file
·84 lines (70 loc) · 1.85 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
#!/bin/bash
# Cronify installer
set -e
# Root check
if [ "$(id -u)" -ne 0 ]; then
echo "Run as root"
exit 1
fi
# Spinner function
spinner() {
local pid=$1; local delay=0.1; local spin='|/-\'
while kill -0 "$pid" 2>/dev/null; do
for ((i=0; i<${#spin}; i++)); do
printf "\r[%c] " "${spin:$i:1}"
sleep "$delay"
done
done
printf "\r"
}
# Run command with spinner
run_cmd() {
"$@" &>/dev/null &
pid=$!
spinner "$pid"
wait "$pid"
}
# Install package using apt-get or yum
install_pkg() {
pkg="$1"
if command -v apt-get &>/dev/null; then
run_cmd apt-get update
run_cmd apt-get install -y "$pkg"
elif command -v yum &>/dev/null; then
run_cmd yum install -y "$pkg"
else
echo "No supported package manager. Install $pkg manually."
exit 1
fi
}
# Ensure python3 and pip3 exist
if ! command -v python3 &>/dev/null; then
echo "Installing python3..."
install_pkg python3
fi
if ! command -v pip3 &>/dev/null; then
echo "Installing pip3..."
install_pkg python3-pip
fi
# Install required Python modules
python3 -c "import croniter" 2>/dev/null || { echo "Installing croniter..."; run_cmd pip3 install croniter; }
python3 -c "import rich" 2>/dev/null || { echo "Installing rich..."; run_cmd pip3 install rich; }
# Define install paths
install_path="/usr/local/bin"
lib_path="/usr/local/lib/cronify"
echo "Installing Cronify..."
# Copy main file (rename to avoid conflict with package folder)
cp cronify_main.py "$install_path/cronify_main.py"
chmod +x "$install_path/cronify_main.py"
# Copy package folder
mkdir -p "$lib_path"
cp -r cronify/* "$lib_path/"
# Create wrapper script 'cronify'
wrapper="$install_path/cronify"
cat << EOF > "$wrapper"
#!/bin/bash
export PYTHONPATH=/usr/local/lib
exec python3 /usr/local/bin/cronify_main.py "\$@"
EOF
chmod +x "$wrapper"
echo "Installed. Run 'cronify --help' to use Cronify."