2019-12-14 15:41:37 +01:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2022-05-21 02:34:50 +02:00
|
|
|
TODAY=$(date -u +%Y%m%d)
|
2019-12-14 15:41:37 +01:00
|
|
|
|
|
|
|
MODEL_NAME="NSFW"
|
2021-12-12 20:15:52 +01:00
|
|
|
MODEL_URL="https://dl.photoprism.app/tensorflow/nsfw.zip?$TODAY"
|
2020-05-31 02:09:52 +02:00
|
|
|
MODEL_PATH="assets/nsfw"
|
2019-12-14 15:41:37 +01:00
|
|
|
MODEL_ZIP="/tmp/photoprism/nsfw.zip"
|
|
|
|
MODEL_HASH="2e03ad3c6aec27c270c650d0574ff2a6291d992b $MODEL_ZIP"
|
|
|
|
MODEL_VERSION="$MODEL_PATH/version.txt"
|
2020-12-04 11:02:19 +01:00
|
|
|
MODEL_BACKUP="storage/backup/nsfw-$TODAY"
|
2019-12-14 15:41:37 +01:00
|
|
|
|
|
|
|
echo "Installing $MODEL_NAME model for TensorFlow..."
|
|
|
|
|
|
|
|
# Create directories
|
2022-05-21 02:34:50 +02:00
|
|
|
mkdir -p /tmp/photoprism
|
|
|
|
mkdir -p storage/backup
|
2019-12-14 15:41:37 +01:00
|
|
|
|
|
|
|
# Check for update
|
2022-05-21 02:34:50 +02:00
|
|
|
if [[ -f ${MODEL_ZIP} ]] && [[ $(sha1sum ${MODEL_ZIP}) == "${MODEL_HASH}" ]]; then
|
2019-12-14 15:41:37 +01:00
|
|
|
if [[ -f ${MODEL_VERSION} ]]; then
|
|
|
|
echo "Already up to date."
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
# Download model
|
|
|
|
echo "Downloading latest model from $MODEL_URL..."
|
2022-05-21 02:34:50 +02:00
|
|
|
wget "${MODEL_URL}" -O ${MODEL_ZIP}
|
2019-12-14 15:41:37 +01:00
|
|
|
|
2022-05-21 02:34:50 +02:00
|
|
|
TMP_HASH=$(sha1sum ${MODEL_ZIP})
|
2019-12-14 15:41:37 +01:00
|
|
|
|
|
|
|
echo ${TMP_HASH}
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Create backup
|
|
|
|
if [[ -e ${MODEL_PATH} ]]; then
|
|
|
|
echo "Creating backup of existing directory: $MODEL_BACKUP"
|
2022-05-21 02:34:50 +02:00
|
|
|
rm -rf "${MODEL_BACKUP}"
|
|
|
|
mv ${MODEL_PATH} "${MODEL_BACKUP}"
|
2019-12-14 15:41:37 +01:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Unzip model
|
2022-05-21 02:34:50 +02:00
|
|
|
unzip ${MODEL_ZIP} -d assets
|
2019-12-14 15:41:37 +01:00
|
|
|
echo "$MODEL_NAME $TODAY $MODEL_HASH" > ${MODEL_VERSION}
|
|
|
|
|
|
|
|
echo "Latest $MODEL_NAME installed."
|