added Malcolm
This commit is contained in:
22
Vagrant/resources/malcolm/name-map-ui/scripts/name-map-save-watch.sh
Executable file
22
Vagrant/resources/malcolm/name-map-ui/scripts/name-map-save-watch.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved.
|
||||
|
||||
PROCESS_DIR=${NAME_MAP_SAVE_DIR:-/var/www/html/upload/}
|
||||
DEST_MAP=${NAME_MAP_JSON:-/var/www/html/maps/net-map.json}
|
||||
|
||||
inotifywait -m -e close_write --format '%w%f' "${PROCESS_DIR}" | while read NEWFILE
|
||||
do
|
||||
sleep 0.1
|
||||
# verify that the file is json|txt and that it is valid JSON
|
||||
FILEMIME=$(file -b --mime-type "$NEWFILE")
|
||||
if ( echo "$FILEMIME" | grep -q -e "\(application/json\|text/plain\)" ) && ( python3 -mjson.tool "$NEWFILE" >/dev/null 2>&1 ); then
|
||||
# move the new net-map.json file into its final location
|
||||
# (done like this with "tee" since we may not be able to cp overwrite a volume-mounted file)
|
||||
(>/dev/null tee "$DEST_MAP" < "$NEWFILE") && echo "\"$NEWFILE\" -> \"$DEST_MAP\""
|
||||
rm -f "$NEWFILE"
|
||||
else
|
||||
# invalid or unhandled file type uploaded, delete it
|
||||
(>&2 rm -f "$NEWFILE") && echo "Removed \"$NEWFILE\" (\"$FILEMIME\"): invalid file type or format"
|
||||
fi
|
||||
done
|
||||
Reference in New Issue
Block a user