Refactor menu.sh to implement locking mechanism

This commit is contained in:
Ing 2024-10-28 23:01:29 +08:00
parent 05fbb5918d
commit e0c64f829b
17 changed files with 12144 additions and 12068 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,16 @@
alias DIALOG='dialog --backtitle "$(backtitle)" --colors --aspect 50'
# lock
exec 304>"${WORK_PATH}/menu.lock"
flock -n 304 || {
DIALOG --title "$(TEXT "Error")" \
--msgbox "$(TEXT "The menu.sh instance is already running in another terminal. To avoid conflicts, please operate in one instance only.")" 0 0
exit 1
}
trap 'rm -f $LOCKFILE' EXIT
trap 'rm -f $LOCKFILE; exit' INT TERM HUP
# Check partition 3 space, if < 2GiB is necessary clean cache folder
SPACELEFT=$(df -m ${PART3_PATH} 2>/dev/null | awk 'NR==2 {print $4}')
CLEARCACHE=0