mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-20 03:16:12 +00:00
firmware: add locking layer
This commit is contained in:
parent
c7d03899f5
commit
70998ed98b
1
Makefile
1
Makefile
@ -78,6 +78,7 @@ CORE_DEPENDS?= apinger \
|
||||
filterdns \
|
||||
filterlog \
|
||||
ifinfo \
|
||||
flock \
|
||||
flowd \
|
||||
igmpproxy \
|
||||
isc-dhcp43-client \
|
||||
|
||||
@ -25,17 +25,11 @@
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
PKG_PROGRESS_FILE=/tmp/pkg_upgrade.progress
|
||||
PATCHES=${1}
|
||||
|
||||
# Check if another pkg process is already running
|
||||
# (not strictly necessary, but we're modifying pkg files)
|
||||
if [ -n "$(pgrep pkg)" ]; then
|
||||
exit 0
|
||||
fi
|
||||
PATCH=${1}
|
||||
|
||||
# Truncate upgrade progress file
|
||||
: > ${PKG_PROGRESS_FILE}
|
||||
|
||||
echo "***GOT REQUEST TO HOTFIX: ${PATCHES}***" >> ${PKG_PROGRESS_FILE}
|
||||
/usr/local/sbin/opnsense-patch ${PATCHES} >> ${PKG_PROGRESS_FILE} 2>&1
|
||||
echo "***GOT REQUEST TO HOTFIX: ${PATCH}***" >> ${PKG_PROGRESS_FILE}
|
||||
/usr/local/sbin/opnsense-patch ${PATCH} >> ${PKG_PROGRESS_FILE} 2>&1
|
||||
echo '***DONE***' >> ${PKG_PROGRESS_FILE}
|
||||
|
||||
@ -28,11 +28,6 @@
|
||||
PKG_PROGRESS_FILE=/tmp/pkg_upgrade.progress
|
||||
PACKAGE=$1
|
||||
|
||||
# Check if another pkg process is already running
|
||||
if [ -n "$(pgrep pkg)" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Truncate upgrade progress file
|
||||
: > ${PKG_PROGRESS_FILE}
|
||||
|
||||
|
||||
53
src/opnsense/scripts/firmware/launcher.sh
Executable file
53
src/opnsense/scripts/firmware/launcher.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2016 Franco Fichtner <franco@opnsense.org>
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
BASEDIR="/usr/local/opnsense/scripts/firmware"
|
||||
LOCKFILE="/tmp/pkg_upgrade.progress"
|
||||
FLOCK="/usr/local/bin/flock -n -o"
|
||||
COMMANDS="
|
||||
hotfix
|
||||
install
|
||||
lock
|
||||
reinstall
|
||||
remove
|
||||
unlock
|
||||
upgrade
|
||||
"
|
||||
|
||||
SELECTED=${1}
|
||||
ARGUMENT=${2}
|
||||
|
||||
for COMMAND in ${COMMANDS}; do
|
||||
if [ "${SELECTED}" != ${COMMAND} ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ -n "$(pgrep pkg)" ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
${FLOCK} ${LOCKFILE} ${BASEDIR}/${COMMAND}.sh ${ARGUMENT}
|
||||
done
|
||||
@ -28,11 +28,6 @@
|
||||
PKG_PROGRESS_FILE=/tmp/pkg_upgrade.progress
|
||||
PACKAGE=$1
|
||||
|
||||
# Check if another pkg process is already running
|
||||
if [ -n "$(pgrep pkg)" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Truncate upgrade progress file
|
||||
: > ${PKG_PROGRESS_FILE}
|
||||
|
||||
|
||||
@ -28,11 +28,6 @@
|
||||
PKG_PROGRESS_FILE=/tmp/pkg_upgrade.progress
|
||||
PACKAGE=$1
|
||||
|
||||
# Check if another pkg process is already running
|
||||
if [ -n "$(pgrep pkg)" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Truncate upgrade progress file
|
||||
: > ${PKG_PROGRESS_FILE}
|
||||
|
||||
|
||||
@ -28,11 +28,6 @@
|
||||
PKG_PROGRESS_FILE=/tmp/pkg_upgrade.progress
|
||||
PACKAGE=$1
|
||||
|
||||
# Check if another pkg process is already running
|
||||
if [ -n "$(pgrep pkg)" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Truncate upgrade progress file
|
||||
: > ${PKG_PROGRESS_FILE}
|
||||
|
||||
|
||||
@ -28,11 +28,6 @@
|
||||
PKG_PROGRESS_FILE=/tmp/pkg_upgrade.progress
|
||||
PACKAGE=$1
|
||||
|
||||
# Check if another pkg process is already running
|
||||
if [ -n "$(pgrep pkg)" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Truncate upgrade progress file
|
||||
: > ${PKG_PROGRESS_FILE}
|
||||
|
||||
|
||||
@ -29,11 +29,6 @@ PKG_PROGRESS_FILE=/tmp/pkg_upgrade.progress
|
||||
PACKAGE=$1
|
||||
REBOOT=
|
||||
|
||||
# Check if another pkg process is already running
|
||||
if [ -n "$(pgrep pkg)" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Truncate upgrade progress file
|
||||
: > ${PKG_PROGRESS_FILE}
|
||||
|
||||
|
||||
@ -5,41 +5,47 @@ type:script_output
|
||||
message:retrieve package status
|
||||
|
||||
[upgrade]
|
||||
command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/firmware/upgrade.sh
|
||||
command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/firmware/launcher.sh upgrade
|
||||
parameters:%s
|
||||
type:script
|
||||
message:upgrading %s
|
||||
|
||||
[reinstall]
|
||||
command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/firmware/reinstall.sh
|
||||
command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/firmware/launcher.sh reinstall
|
||||
parameters:%s
|
||||
type:script
|
||||
message: reinstalling firmware package %s
|
||||
|
||||
[lock]
|
||||
command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/firmware/lock.sh
|
||||
command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/firmware/launcher.sh lock
|
||||
parameters:%s
|
||||
type:script
|
||||
message: locking firmware package %s
|
||||
|
||||
[unlock]
|
||||
command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/firmware/unlock.sh
|
||||
command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/firmware/launcher.sh unlock
|
||||
parameters:%s
|
||||
type:script
|
||||
message: unlocking firmware package %s
|
||||
|
||||
[install]
|
||||
command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/firmware/install.sh
|
||||
command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/firmware/launcher.sh install
|
||||
parameters:%s
|
||||
type:script
|
||||
message: installing firmware package %s
|
||||
|
||||
[remove]
|
||||
command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/firmware/remove.sh
|
||||
command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/firmware/launcher.sh remove
|
||||
parameters:%s
|
||||
type:script
|
||||
message: remove firmware package %s
|
||||
|
||||
[hotfix]
|
||||
command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/firmware/launcher.sh hotfix
|
||||
parameters:%s
|
||||
type:script
|
||||
message:issued firmware hotfix for %s
|
||||
|
||||
[status]
|
||||
command: /usr/bin/touch /tmp/pkg_upgrade.progress 2>&1; /bin/cat /tmp/pkg_upgrade.progress 2>&1
|
||||
parameters:
|
||||
@ -82,12 +88,6 @@ parameters:
|
||||
type:script
|
||||
message:issued firmware power off
|
||||
|
||||
[hotfix]
|
||||
command:/usr/local/opnsense/scripts/firmware/hotfix.sh
|
||||
parameters:%s
|
||||
type:script
|
||||
message:issued firmware hotfix for %s
|
||||
|
||||
[auto-update]
|
||||
command:/usr/local/etc/rc.firmware
|
||||
description:Automatic firmware update
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user