aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile21
-rw-r--r--X/logrotate/config.d/config5
-rw-r--r--logrotate/config5
-rw-r--r--logrotate/systemd/user/logrotate.service10
-rw-r--r--logrotate/systemd/user/logrotate.timer10
5 files changed, 49 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 6b0812a1..70459579 100644
--- a/Makefile
+++ b/Makefile
@@ -475,6 +475,16 @@ install-less: less/less
mkdir -p -- $(XDG_CONFIG_HOME)/less
cp -p -- less/less $(XDG_CONFIG_HOME)/less/key
+install-logrotate:
+ mkdir -p -- $(XDG_CONFIG_HOME)/logrotate \
+ $(XDG_CONFIG_HOME)/logrotate/config.d
+ cp -- logrotate/config $(XDG_CONFIG_HOME)/logrotate
+ -command -v systemctl >/dev/null 2>&1 \
+ && mkdir -p -- $(XDG_CONFIG_HOME)/systemd/user \
+ && cp -p -- logrotate/systemd/user/* $(XDG_CONFIG_HOME)/systemd/user \
+ && systemctl --user enable logrotate.timer \
+ && systemctl --user start logrotate.timer
+
install-mail:
cp -p -- mail/signature $(HOME)/.signature
@@ -648,13 +658,20 @@ install-wget: install-sh
mkdir -p -- $(XDG_CACHE_HOME)/wget $(XDG_CONFIG_HOME)/wget
cp -p -- wget/wgetrc $(XDG_CONFIG_HOME)/wget/wgetrc
-install-x: X/xsession check-xsession
+install-x: X/xsession check-xsession install-logrotate
mkdir -p -- \
$(HOME)/.xsession.d \
- $(HOME)/.Xresources.d
+ $(HOME)/.Xresources.d \
+ $(XDG_CONFIG_HOME)/log/xsession
cp -p -- X/xsession $(HOME)/.xsession
cp -p -- X/Xresources $(HOME)/.Xresources
cp -p -- X/Xresources.d/* $(HOME)/.Xresources.d
+ cp -p -- X/logrotate/config.d/* $(XDG_CONFIG_HOME)/logrotate/config.d
+ touch -- $(XDG_CONFIG_HOME)/log/xsession/errors.log
+ chmod -- 0600 $(XDG_CONFIG_HOME)/log/xsession/errors.log
+ if [ -e $(HOME)/.xsession-errors ] && ! [ -h $(HOME)/.xsession-errors ] ; then \
+ mv -- $(HOME)/.xsession-errors $(XDG_CONFIG_HOME)/log/xsession/errors.log ; \
+ fi
install-yt-dlp install-youtube-dl:
mkdir -p -- $(XDG_CONFIG_HOME)/yt-dlp
diff --git a/X/logrotate/config.d/config b/X/logrotate/config.d/config
new file mode 100644
index 00000000..c0b1b51b
--- /dev/null
+++ b/X/logrotate/config.d/config
@@ -0,0 +1,5 @@
+~/.config/log/xsession/errors.log {
+ copytruncate
+ daily
+ rotate 30
+}
diff --git a/logrotate/config b/logrotate/config
new file mode 100644
index 00000000..5a703a46
--- /dev/null
+++ b/logrotate/config
@@ -0,0 +1,5 @@
+compress
+create 0600
+delaycompress
+
+include ~/.config/logrotate/config.d
diff --git a/logrotate/systemd/user/logrotate.service b/logrotate/systemd/user/logrotate.service
new file mode 100644
index 00000000..aeb17f7c
--- /dev/null
+++ b/logrotate/systemd/user/logrotate.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=user log rotation
+OnFailure=notify-email@%n
+
+[Service]
+Type=oneshot
+ConfigurationDirectory=%p
+StateDirectory=%p
+ExecStart=/usr/sbin/logrotate --state=%S/%p/status -- %E/%p/config
+TimeoutStartSec=20m
diff --git a/logrotate/systemd/user/logrotate.timer b/logrotate/systemd/user/logrotate.timer
new file mode 100644
index 00000000..077aeac9
--- /dev/null
+++ b/logrotate/systemd/user/logrotate.timer
@@ -0,0 +1,10 @@
+[Unit]
+Description=user log rotation schedule
+
+[Timer]
+OnBootSec=1h
+OnUnitActiveSec=6h
+RandomizedDelaySec=5m
+
+[Install]
+WantedBy=timers.target