summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 3bd651799118c77625a5af6ad5dceafc3858b610 (plain)
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# Maintainer: Yahya Zekry <yahyazekry@gmail.com>

pkgname=internet-usage-monitor-git
_pkgname_src=internet-usage-monitor
pkgver=r49.17451d8
pkgrel=1
pkgdesc="Monitors internet usage in real-time via Conky with desktop notifications (git version)"
arch=('any')
provides=("internet-usage-monitor=${pkgver}")
conflicts=('internet-usage-monitor')
url="https://github.com/YahyaZekry/internet-usage-monitor"
license=('MIT')
depends=('bash' 'conky' 'bc' 'procps-ng' 'libnotify' 'zenity')
makedepends=('git')
install=${pkgname}.install
source=("${_pkgname_src}::git+${url}.git#branch=main")
sha256sums=('SKIP')

pkgver() {
  cd "$_pkgname_src"
  printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

prepare() {
  cd "$_pkgname_src"
  
  # Patch scripts to use XDG directories and system paths
  # This ensures scripts work directly from system locations
  
  # Create modified versions of scripts that work from system locations
  mkdir -p "${srcdir}/patched"
  
  # Patch internet_monitor.sh to use XDG paths
  sed -e 's|$HOME/config.sh|${XDG_CONFIG_HOME:-$HOME/.config}/internet-usage-monitor/config.sh|g' \
      -e 's|$HOME/.internet_usage_data|${XDG_DATA_HOME:-$HOME/.local/share}/internet-usage-monitor/usage_data|g' \
      -e 's|$HOME/.internet_usage.log|${XDG_DATA_HOME:-$HOME/.local/share}/internet-usage-monitor/usage.log|g' \
      "src/internet_monitor.sh" > "${srcdir}/patched/internet_monitor.sh"
  
  # Patch conky_usage_helper.sh
  sed -e 's|$HOME/.internet_usage_data|${XDG_DATA_HOME:-$HOME/.local/share}/internet-usage-monitor/usage_data|g' \
      "src/conky_usage_helper.sh" > "${srcdir}/patched/conky_usage_helper.sh"
  
  # Patch internet_monitor_daemon.sh
  sed -e 's|$HOME/internet_monitor.sh|/usr/bin/internet-monitor|g' \
      "src/internet_monitor_daemon.sh" > "${srcdir}/patched/internet_monitor_daemon.sh"
}

package() {
  cd "$_pkgname_src"

  # Install patched scripts to /usr/bin
  install -Dm755 "${srcdir}/patched/internet_monitor.sh" "$pkgdir/usr/bin/internet-monitor"
  install -Dm755 "${srcdir}/patched/conky_usage_helper.sh" "$pkgdir/usr/bin/internet-monitor-conky-helper"
  install -Dm755 "${srcdir}/patched/internet_monitor_daemon.sh" "$pkgdir/usr/bin/internet-monitor-daemon"
  
  # Create wrapper script for setup
  cat > "${srcdir}/internet-monitor-setup" << 'EOF'
#!/bin/bash
# Internet Usage Monitor Setup Script

XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
CONFIG_DIR="$XDG_CONFIG_HOME/internet-usage-monitor"
DATA_DIR="$XDG_DATA_HOME/internet-usage-monitor"

echo "Setting up Internet Usage Monitor..."

# Create directories
mkdir -p "$CONFIG_DIR" "$DATA_DIR"

# Copy default configs if they don't exist
if [ ! -f "$CONFIG_DIR/config.sh" ]; then
    cp /usr/share/internet-usage-monitor-git/config.sh "$CONFIG_DIR/"
    echo "Created config file: $CONFIG_DIR/config.sh"
fi

if [ ! -f "$CONFIG_DIR/conkyrc_internet" ]; then
    cp /usr/share/internet-usage-monitor-git/conkyrc_internet "$CONFIG_DIR/"
    # Update conkyrc to use correct helper path
    sed -i 's|conky_usage_helper.sh|internet-monitor-conky-helper|g' "$CONFIG_DIR/conkyrc_internet"
    echo "Created Conky config: $CONFIG_DIR/conkyrc_internet"
fi

# Create systemd user service
mkdir -p "$HOME/.config/systemd/user"
cat > "$HOME/.config/systemd/user/internet-monitor.service" << 'SERVICEEOF'
[Unit]
Description=Internet Usage Monitor Daemon
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/internet-monitor-daemon start
Restart=always
RestartSec=30

[Install]
WantedBy=default.target
SERVICEEOF

echo "Created systemd service: $HOME/.config/systemd/user/internet-monitor.service"

# Create desktop autostart for Conky
mkdir -p "$XDG_CONFIG_HOME/autostart"
cat > "$XDG_CONFIG_HOME/autostart/internet-monitor-conky.desktop" << DESKTOPEOF
[Desktop Entry]
Type=Application
Name=Internet Usage Monitor Conky
Exec=conky -c $CONFIG_DIR/conkyrc_internet
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Comment=Display internet usage on desktop
DESKTOPEOF

echo "Created autostart entry: $XDG_CONFIG_HOME/autostart/internet-monitor-conky.desktop"

# Enable and start the service
systemctl --user daemon-reload
systemctl --user enable internet-monitor.service
systemctl --user start internet-monitor.service

echo ""
echo "Setup complete! Internet Usage Monitor is now running."
echo "The daemon has been started and will monitor your usage."
echo "The Conky widget will start on your next login."
echo ""
echo "To start Conky now: conky -c $CONFIG_DIR/conkyrc_internet &"
echo "To check status: systemctl --user status internet-monitor.service"
EOF
  
  install -Dm755 "${srcdir}/internet-monitor-setup" "$pkgdir/usr/bin/internet-monitor-setup"

  # Install default configs to /usr/share
  install -Dm644 "config/config.sh" "$pkgdir/usr/share/$pkgname/config.sh"
  install -Dm644 "config/conkyrc_internet" "$pkgdir/usr/share/$pkgname/conkyrc_internet"
  
  # Install license and documentation
  install -Dm644 "LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
  install -Dm644 "README.md" "$pkgdir/usr/share/doc/$pkgname/README.md"
}