added script
This commit is contained in:
parent
8cb9e0b974
commit
9a7042d2de
|
|
@ -0,0 +1,10 @@
|
|||
[Desktop Entry]
|
||||
Name=Calibre Remote
|
||||
GenericName=Remote e-book library management
|
||||
Comment=It's Calibre, but configured to work with a remote Calibre library
|
||||
Exec=calibre-remote
|
||||
Terminal=true
|
||||
Icon=calibre-gui
|
||||
Type=Application
|
||||
Categories=Office;
|
||||
StartupNotify=false
|
||||
|
|
@ -0,0 +1,113 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Declaring the folder and database paths
|
||||
LOCAL_CALIBRE_DB="<path to the locally stored metadata.db>"
|
||||
REMOTE_CALIBRE_DB="<path to the remotely stored metadata.db>"
|
||||
REMOTE_CALIBRE_LIBRARY="<path to the remote library root folder>"
|
||||
|
||||
# Declaring Calibre-Web db reconnect URL (leave it to "NaN" if not used)
|
||||
CALIBRE_WEB_URL="NaN"
|
||||
|
||||
# The function that will handle starting Calibre and copying the metadata.db after Calibre exits
|
||||
start_calibre() {
|
||||
echo "Starting up Calibre..."
|
||||
|
||||
# Calling Calibre with the set remote library
|
||||
calibre --with-library $CALIBRE_LIBRARY_DIRECTORY
|
||||
|
||||
echo "Calibre exited!"
|
||||
|
||||
# Checking if the user edited anything
|
||||
if ! cmp $LOCAL_CALIBRE_DB $REMOTE_CALIBRE_DB >/dev/null 2>&1; then
|
||||
# If the user edited anything copying the new metadata.db to the server automatically
|
||||
echo "Local database edited. Copying it to remote database..."
|
||||
cp -f $LOCAL_CALIBRE_DB $REMOTE_CALIBRE_DB
|
||||
echo "Copied!"
|
||||
if [[ $CALIBRE_WEB_URL = "NaN" ]]; then
|
||||
echo "Calibre-Web URL not defined. Proceeding without reconnecting Calibre-Web to database."
|
||||
else
|
||||
curl $CALIBRE_WEB_URL
|
||||
echo "Calibre-Web reconnected to database."
|
||||
fi
|
||||
read -n 1 -s -r -p "Press any key to exit..."
|
||||
exit
|
||||
else
|
||||
# If nothing was edited prompt the user if they want to copy metadata.db or not
|
||||
echo "You did not edit the the database, so it is not necessarry to overwrite remote db. Do you want to? (y/n)"
|
||||
read ANSWER
|
||||
if [[ $ANSWER = "y" ]]; then
|
||||
cp -f $LOCAL_CALIBRE_DB $REMOTE_CALIBRE_DB
|
||||
echo "Copied!"
|
||||
if [[ $CALIBRE_WEB_URL = "NaN" ]]; then
|
||||
echo "Calibre-Web URL not defined. Proceeding without reconnecting Calibre-Web to database."
|
||||
else
|
||||
curl $CALIBRE_WEB_URL
|
||||
echo "Calibre-Web reconnected to database."
|
||||
fi
|
||||
read -n 1 -s -r -p "Press any key to exit..."
|
||||
exit
|
||||
|
||||
else
|
||||
echo "Database won't be copied!"
|
||||
read -n 1 -s -r -p "Press any key to exit..."
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Checking if the remote library is mounted
|
||||
if [ -d $REMOTE_CALIBRE_LIBRARY ]; then
|
||||
CALIBRE_LIBRARY_DIRECTORY=$REMOTE_CALIBRE_LIBRARY
|
||||
echo "Remote library found: $CALIBRE_LIBRARY_DIRECTORY"
|
||||
|
||||
# Checking if metadata.db is present on the local storage
|
||||
if [ -f $LOCAL_CALIBRE_DB ]; then
|
||||
|
||||
# If local metadata.db exists check if the remote metadata.db was edited on the server
|
||||
if ! cmp $LOCAL_CALIBRE_DB $REMOTE_CALIBRE_DB >/dev/null 2>&1; then
|
||||
# If it was edited, prompting the user if they want to copy the remote one to the local storage
|
||||
echo "Remote and local databases are different. Do you want to overwrite local db? (y/n): "
|
||||
read ANSWER
|
||||
if [[ $ANSWER = "y" ]]; then
|
||||
cp -f $REMOTE_CALIBRE_DB $LOCAL_CALIBRE_DB
|
||||
else
|
||||
echo "Cannot start Calibre without an up-to-date database!"
|
||||
read -n 1 -s -r -p "Press any key to exit..."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setting up the env variable for Calibre
|
||||
export CALIBRE_OVERRIDE_DATABASE_PATH=$LOCAL_CALIBRE_DB
|
||||
echo "Metadata db found: $CALIBRE_OVERRIDE_DATABASE_PATH"
|
||||
|
||||
# Start Calibre with the correct remote Library path and local metadata.db path
|
||||
start_calibre
|
||||
|
||||
else
|
||||
# If local metadata.db doesn't exists copy it from the server
|
||||
echo "Metadata db not found, trying to copy it from remote server..."
|
||||
if [ -f $REMOTE_CALIBRE_DB ]; then
|
||||
cp $REMOTE_CALIBRE_DB $LOCAL_CALIBRE_DB
|
||||
echo "Database copied succesfully\!"
|
||||
export CALIBRE_OVERRIDE_DATABASE_PATH=$LOCAL_CALIBRE_DB
|
||||
echo "Metadata db now exists: $CALIBRE_OVERRIDE_DATABASE_PATH"
|
||||
|
||||
# Start Calibre with the correct remote Library path and local metadata.db path
|
||||
start_calibre
|
||||
|
||||
else
|
||||
# If the remote metadata.db cannot be found exit the program
|
||||
echo "Cannot find database on remote server!"
|
||||
read -n 1 -s -r -p "Press any key to exit..."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
else
|
||||
# If the remote library cannot be found exit the program
|
||||
echo "Remote library not found!"
|
||||
read -n 1 -s -r -p "Press any key to exit..."
|
||||
echo "Exiting..."
|
||||
exit 1
|
||||
fi
|
||||
Loading…
Reference in New Issue