paperless - make configurable and add step for retagging

This commit is contained in:
2022-08-29 00:55:53 +02:00
parent f2b759c72c
commit 28fc237fbb
2 changed files with 62 additions and 46 deletions

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
sc_paperlessHome="/opt/paperless"
sc_paperlessDir="${sc_paperlessHome}/paperless-ngx"
sc_paperlessBackupDir="${HOME}/backup"

View File

@@ -13,24 +13,14 @@ downUrl=
sq_paperlessDownLoc="/tmp/paperless_latest.tar.xz" sq_paperlessDownLoc="/tmp/paperless_latest.tar.xz"
sq_aptOpt= sq_aptOpt=
sc_paperlessHome="/opt/paperless"
sc_paperlessDir="${sc_paperlessHome}/paperless-ngx"
seq_config() { seq_config() {
## Called once before executing steps.
## e.g. to source a config file manually:
#. "${seq_origin:?}/${seq_configName:?}"
## or to use sequencer api with profile config file support:
#if initSeqConfig -p "${seq_fileName:?}" "${seq_configTemplate:?}" ; then
## or to use sequencer api with global config file: ## or to use sequencer api with global config file:
#if initSeqConfig "${seq_configName:?}" "${seq_configTemplate:?}" ; then if initSeqConfig "${seq_configName:?}" "${seq_configTemplate:?}" ; then
# sq_config=1 sq_config=1
#else else
# # End if no configuration file exists # End if no configuration file exists
# dry || return 1 dry || return 1
#fi fi
## Apt cmdline option to suppress user interaction ## Apt cmdline option to suppress user interaction
interactive || sq_aptOpt="-y" interactive || sq_aptOpt="-y"
@@ -45,14 +35,13 @@ seq_config() {
getVersions() { getVersions() {
versionNew="${versionNew:-$(curl --silent "$versionUrl" | grep -Po '"tag_name": "v\K.*?(?=")')}" versionNew="${versionNew:-$(curl --silent "$versionUrl" | grep -Po '"tag_name": "v\K.*?(?=")')}"
versionNow=1.7.1 #${versionNow:-$(grep -Po 'Changelog.*Paperless-ngx \K.*?(?= )' 2>/dev/null < "${sc_paperlessDir}/docs/changelog.html")} versionNow=${versionNow:-$(grep -Po 'Changelog.*Paperless-ngx \K.*?(?= )' 2>/dev/null < "${sc_paperlessDir}/docs/changelog.html")}
downUrl="${downUrl:-"https://github.com/paperless-ngx/paperless-ngx/releases/download/v${versionNew:?}/paperless-ngx-v${versionNew:?}.tar.xz"}" downUrl="${downUrl:-"https://github.com/paperless-ngx/paperless-ngx/releases/download/v${versionNew:?}/paperless-ngx-v${versionNew:?}.tar.xz"}"
} }
step_1_info() { echo "Status of ${toolName}"; } step_1_info() { echo "Status of ${toolName}"; }
step_1_alias() { echo "status"; } step_1_alias() { echo "status"; }
step_1() { step_1() {
die "Testende"
getVersions getVersions
info -n "${toolName} " info -n "${toolName} "
if [[ -n "${versionNow}" ]] ; then if [[ -n "${versionNow}" ]] ; then
@@ -74,26 +63,30 @@ step_3_info() { echoinfoArgs "[status|start|stop]"; echo "Manage ${toolName} ser
step_3_alias() { echo "service"; } step_3_alias() { echo "service"; }
step_3() { step_3() {
shift shift
local serviceCommand="status" local serviceCommand="is-active"
local serviceOpt="-n 0" case "${1:-"status"}" in
case "${1:-}" in
start) start)
serviceOpt=
serviceCommand="${1}" ;; serviceCommand="${1}" ;;
stop) stop)
serviceOpt=
serviceCommand="${1}" ;; serviceCommand="${1}" ;;
status) status)
serviceCommand="${1}" ;; serviceCommand="is-active"
info -n "paperless-webserver: "
exe systemctl "${serviceCommand:?}" paperless-webserver
info -na "paperless-scheduler: "
exe systemctl "${serviceCommand:?}" paperless-scheduler
info -na "paperless-consumer : "
exe systemctl "${serviceCommand:?}" paperless-consumer
return 0 ;;
"") "")
;; ;;
*) *)
error "Unknown command ${1:-"-"}" error "Unknown command ${1:-"-"}"
return 1 ;; return 1 ;;
esac esac
exe systemctl ${serviceOpt:-} "${serviceCommand:?}" paperless-webserver exe systemctl "${serviceCommand:?}" paperless-webserver
exe systemctl ${serviceOpt:-} "${serviceCommand:?}" paperless-scheduler exe systemctl "${serviceCommand:?}" paperless-scheduler
exe systemctl ${serviceOpt:-} "${serviceCommand:?}" paperless-consumer exe systemctl "${serviceCommand:?}" paperless-consumer
} }
step_10_info() { echo "Install python3"; } step_10_info() { echo "Install python3"; }
@@ -141,7 +134,6 @@ step_12() {
exe tar -xf "${sq_paperlessDownLoc}" -C "${sc_paperlessHome}" exe tar -xf "${sq_paperlessDownLoc}" -C "${sc_paperlessHome}"
exe chown -R "${toolUser}": "${sc_paperlessDir}" exe chown -R "${toolUser}": "${sc_paperlessDir}"
exe install --owner="${toolUser}" --group="${toolUser}" -d "${sc_paperlessHome}/"{consume,data,media}
if ((toolUpgrade)) ; then if ((toolUpgrade)) ; then
info "Moving over ${toolName} and gunicorn configuration" info "Moving over ${toolName} and gunicorn configuration"
@@ -170,6 +162,7 @@ step_13() {
step_14_info() { echo "Initialization"; } step_14_info() { echo "Initialization"; }
step_14() { step_14() {
exe install --owner="${toolUser}" --group="${toolUser}" -d "${sc_paperlessHome}/"{consume,data,media}
exe cd "${sc_paperlessDir}/src" exe cd "${sc_paperlessDir}/src"
exe sudo -Hu paperless python3 manage.py migrate exe sudo -Hu paperless python3 manage.py migrate
exe sudo -Hu paperless python3 manage.py createsuperuser exe sudo -Hu paperless python3 manage.py createsuperuser
@@ -183,9 +176,42 @@ step_16() {
exe sudo -Hu paperless python3 manage.py migrate exe sudo -Hu paperless python3 manage.py migrate
} }
step_20_info() { echo "Notes"; } step_18_info() {
step_20_alias() { echo "notes"; } echoinfoArgs "[OPTIONS]"; echo "Retag existing documents"
step_20() { echoinfo "OPTIONS"
echoinfo " -c, --correspondent"
echoinfo " -T, --tags"
echoinfo " -t, --document_type"
echoinfo " -i, --inbox-only"
echoinfo " --use-first"
echoinfo " -f, --overwrite"
}
step_18_alias() { echo "retag"; }
step_18() {
shift
exe cd "${sc_paperlessDir}/src"
exe sudo -Hu paperless python3 manage.py document_retagger "$@"
}
step_30_info() { echoinfoArgs "[--nostart]"; echo "Backup ${toolName}"; }
step_30_alias() { echo "backup"; }
step_30() {
shift
info "Doing backup..."
step service stop
exe cd "$(dirname -- "${sc_paperlessHome}")"
exe tar czf "${sc_paperlessBackupDir:-"${HOME}/backup"}/paperless_backup_$(date +%Y%m%d-%H%M%S).tar.gz" "$(basename -- "${sc_paperlessHome}")"
if [[ ${1:-} == "--nostart" ]] ; then
info "Not starting ${toolName} services after backup"
else
step service start
fi
}
step_100_info() { echo "Notes"; }
step_100_alias() { echo "notes"; }
step_100() {
color green color green
cat <<EOF_NOTES cat <<EOF_NOTES
# Config modifications # Config modifications
@@ -215,20 +241,5 @@ EOF_NOTES
color none color none
} }
step_30_info() { echoinfoArgs "[--nostart]"; echo "Backup ${toolName}"; }
step_30_alias() { echo "backup"; }
step_30() {
shift
info "Doing backup..."
step service stop
exe cd "$(dirname -- "${sc_paperlessHome}")"
exe tar czf "/root/backup/paperless_backup_$(date +%Y%m%d-%H%M%S).tar.gz" "$(basename -- "${sc_paperlessHome}")"
if [[ ${1:-} == "--nostart" ]] ; then
info "Not starting ${toolName} services after backup"
else
step service start
fi
}
readonly sqr_minVersion=16 readonly sqr_minVersion=16
. sequencer.sh . sequencer.sh