git: c8b89c11a118 - main - periodic: set _localbase for periodic scripts from within periodic.conf
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 21 Jan 2025 21:15:31 UTC
The branch main has been updated by otis:
URL: https://cgit.FreeBSD.org/src/commit/?id=c8b89c11a1181e900acb638cfde7a55e92553175
commit c8b89c11a1181e900acb638cfde7a55e92553175
Author: Juraj Lutter <otis@FreeBSD.org>
AuthorDate: 2024-11-08 13:38:19 +0000
Commit: Juraj Lutter <otis@FreeBSD.org>
CommitDate: 2025-01-21 21:14:41 +0000
periodic: set _localbase for periodic scripts from within periodic.conf
Set _localbase variable from within /etc/defaults/periodic.conf
for use by periodic scripts.
This fixes e5d7100c09, no other functional changes intended.
Reported by: gahr, otis
Reviewed by: markj, gahr
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D47486
---
usr.sbin/periodic/periodic.conf | 9 +++++++++
usr.sbin/periodic/periodic.sh | 12 ++++--------
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/usr.sbin/periodic/periodic.conf b/usr.sbin/periodic/periodic.conf
index 3bb34d827564..7066c7b49fd1 100644
--- a/usr.sbin/periodic/periodic.conf
+++ b/usr.sbin/periodic/periodic.conf
@@ -15,6 +15,15 @@
#
#
+_set_localbase() {
+ _localbase=`/sbin/sysctl -n user.localbase 2> /dev/null`
+ # Set default value of _localbase if not previously set
+ : ${_localbase:="/usr/local"}
+}
+
+# Set _localbase with fallback to /usr/local
+_set_localbase
+
# What files override these defaults ?
periodic_conf_files="/etc/periodic.conf /etc/periodic.conf.local ${_localbase}/etc/periodic.conf"
diff --git a/usr.sbin/periodic/periodic.sh b/usr.sbin/periodic/periodic.sh
index 09727a840eff..a310f04864da 100644
--- a/usr.sbin/periodic/periodic.sh
+++ b/usr.sbin/periodic/periodic.sh
@@ -29,14 +29,6 @@ if [ $# -lt 1 ] ; then
usage
fi
-_localbase=`/sbin/sysctl -n user.localbase 2> /dev/null`
-# Set default value of _localbase if not previously set
-: ${_localbase:="/usr/local"}
-
-# Use a deterministic path to match the preset from /etc/crontab in case
-# periodic is run interactively.
-export PATH=/sbin:/bin:/usr/sbin:/usr/bin:${_localbase}/sbin:${_localbase}/bin
-
# If possible, check the global system configuration file,
# to see if there are additional dirs to check
if [ -r /etc/defaults/periodic.conf ]; then
@@ -44,6 +36,10 @@ if [ -r /etc/defaults/periodic.conf ]; then
source_periodic_confs
fi
+# Use a deterministic path to match the preset from /etc/crontab in case
+# periodic is run interactively.
+export PATH=/sbin:/bin:/usr/sbin:/usr/bin:${_localbase}/sbin:${_localbase}/bin
+
host=`hostname`
export host