mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
use env variables in pre-|post-consume scripts
+ instead of positional arguments because it's easier to use in the shell script and easier to read in the python code.
This commit is contained in:
parent
72ee904e67
commit
08ae3f8771
@ -121,10 +121,10 @@ Pre-consumption script
|
||||
======================
|
||||
|
||||
Executed after the consumer sees a new document in the consumption folder, but
|
||||
before any processing of the document is performed. This script receives exactly
|
||||
one argument:
|
||||
before any processing of the document is performed. This script can access the
|
||||
following relevant environment variables set:
|
||||
|
||||
* Document file name
|
||||
* ``DOCUMENT_SOURCE_PATH``
|
||||
|
||||
A simple but common example for this would be creating a simple script like
|
||||
this:
|
||||
@ -134,7 +134,7 @@ this:
|
||||
.. code:: bash
|
||||
|
||||
#!/usr/bin/env bash
|
||||
pdf2pdfocr.py -i ${1}
|
||||
pdf2pdfocr.py -i ${DOCUMENT_SOURCE_PATH}
|
||||
|
||||
``/etc/paperless.conf``
|
||||
|
||||
@ -157,16 +157,16 @@ Post-consumption script
|
||||
=======================
|
||||
|
||||
Executed after the consumer has successfully processed a document and has moved it
|
||||
into paperless. It receives the following arguments:
|
||||
into paperless. It receives the following environment variables:
|
||||
|
||||
* Document id
|
||||
* Generated file name
|
||||
* Source path
|
||||
* Thumbnail path
|
||||
* Download URL
|
||||
* Thumbnail URL
|
||||
* Correspondent
|
||||
* Tags
|
||||
* ``DOCUMENT_ID``
|
||||
* ``DOCUMENT_FILE_NAME``
|
||||
* ``DOCUMENT_SOURCE_PATH``
|
||||
* ``DOCUMENT_THUMBNAIL_PATH``
|
||||
* ``DOCUMENT_DOWNLOAD_URL``
|
||||
* ``DOCUMENT_THUMBNAIL_URL``
|
||||
* ``DOCUMENT_CORRESPONDENT``
|
||||
* ``DOCUMENT_TAGS``
|
||||
|
||||
The script can be in any language, but for a simple shell script
|
||||
example, you can take a look at `post-consumption-example.sh`_ in this project.
|
||||
|
@ -1,14 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
DOCUMENT_ID=${1}
|
||||
DOCUMENT_FILE_NAME=${2}
|
||||
DOCUMENT_SOURCE_PATH=${3}
|
||||
DOCUMENT_THUMBNAIL_PATH=${4}
|
||||
DOCUMENT_DOWNLOAD_URL=${5}
|
||||
DOCUMENT_THUMBNAIL_URL=${6}
|
||||
DOCUMENT_CORRESPONDENT=${7}
|
||||
DOCUMENT_TAGS=${8}
|
||||
|
||||
echo "
|
||||
|
||||
A document with an id of ${DOCUMENT_ID} was just consumed. I know the
|
||||
|
@ -134,8 +134,11 @@ class Consumer(LoggingMixin):
|
||||
|
||||
self.log("info", f"Executing pre-consume script {settings.PRE_CONSUME_SCRIPT}")
|
||||
|
||||
script_env = os.environ.copy()
|
||||
script_env["DOCUMENT_SOURCE_PATH"] = os.path.normpath(self.path)
|
||||
|
||||
try:
|
||||
Popen((settings.PRE_CONSUME_SCRIPT, self.path)).wait()
|
||||
Popen(settings.PRE_CONSUME_SCRIPT, env=script_env).wait()
|
||||
except Exception as e:
|
||||
self._fail(
|
||||
MESSAGE_PRE_CONSUME_SCRIPT_ERROR,
|
||||
@ -159,19 +162,29 @@ class Consumer(LoggingMixin):
|
||||
f"Executing post-consume script {settings.POST_CONSUME_SCRIPT}",
|
||||
)
|
||||
|
||||
script_env = os.environ.copy()
|
||||
|
||||
script_env["DOCUMENT_ID"] = str(document.pk)
|
||||
script_env["DOCUMENT_FILE_NAME"] = document.get_public_filename()
|
||||
script_env["DOCUMENT_SOURCE_PATH"] = os.path.normpath(document.source_path)
|
||||
script_env["DOCUMENT_THUMBNAIL_PATH"] = os.path.normpath(
|
||||
document.thumbnail_path
|
||||
)
|
||||
script_env["DOCUMENT_DOWNLOAD_URL"] = reverse(
|
||||
"document-download", kwargs={"pk": document.pk}
|
||||
)
|
||||
script_env["DOCUMENT_THUMBNAIL_URL"] = reverse(
|
||||
"document-thumb", kwargs={"pk": document.pk}
|
||||
)
|
||||
script_env["DOCUMENT_CORRESPONDENT"] = str(document.correspondent)
|
||||
script_env["DOCUMENT_TAGS"] = str(
|
||||
",".join(document.tags.all().values_list("name", flat=True))
|
||||
)
|
||||
|
||||
try:
|
||||
Popen(
|
||||
(
|
||||
settings.POST_CONSUME_SCRIPT,
|
||||
str(document.pk),
|
||||
document.get_public_filename(),
|
||||
os.path.normpath(document.source_path),
|
||||
os.path.normpath(document.thumbnail_path),
|
||||
reverse("document-download", kwargs={"pk": document.pk}),
|
||||
reverse("document-thumb", kwargs={"pk": document.pk}),
|
||||
str(document.correspondent),
|
||||
str(",".join(document.tags.all().values_list("name", flat=True))),
|
||||
),
|
||||
settings.POST_CONSUME_SCRIPT,
|
||||
env=script_env,
|
||||
).wait()
|
||||
except Exception as e:
|
||||
self._fail(
|
||||
|
Loading…
x
Reference in New Issue
Block a user