|
||
---|---|---|
.idea | ||
etc/execNotify | ||
src/de | ||
tests | ||
.gitignore | ||
LICENSE | ||
pyproject.toml | ||
README.md | ||
requirements.txt | ||
setup.cfg |
execNotify
- Send email notification if command fails with de-p1st-execNotify.
- Send unconditional notifications with de-p1st-notify.
Installation - venv
More detailed instructions about venv can be found at https://docs.python.org/3/library/venv.html
Create a venv:
python3 -m venv ~/execNotify/venv
Activate the venv:
source ~/execNotify/venv/bin/activate
# echo "VIRTUAL_ENV=${VIRTUAL_ENV}"
Option A: Install the module from TestPyPI:
python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps --upgrade de.p1st.exec-notify
The above command uses the parameter --no-deps
:
Since TestPyPI doesn’t have the same packages as the live PyPI, it’s possible that attempting to install dependencies may fail or install something unexpected. While this package doesn’t have any dependencies, it’s a good practice to avoid installing dependencies when using TestPyPI.
Option B: Install from local directory
python3 -m pip install ~/Downloads/git/execNotify/
(Optionally) list installed modules:
pip list
Instalation - global
Requires pip
(e.g. pacman -S --needed python-pip
):
sudo python3 -m pip install --upgrade --index-url https://test.pypi.org/simple/ --no-deps de.p1st.exec-notify
Configuration
Create configuration file /etc/execNotify/cfg.ini
:
install -Dm0600 /etc/execNotify/cfg.ini << 'EOF'
[DEFAULT]
[mail]
host = smtp.example.com
port = 465
password = examplePassword
from = noreply@example.com
to = me@example.com
[file]
maildir = /home/exampleUser/mail/
EOF
See also: ./etc/execNotify/cfg.ini.example
Usage
Usage of execNotify
Add de-p1st-execNotify
in front of your command to execute.
Example:
de-p1st-execNotify ls /non/existent/file
will mail you the exit code, stdout and stderr of ls /non/existent/file
Usage of notify
Send stdout via mail:
echo "Hello world!" | de-p1st-notify
Send stdout and stderr via mail:
echo "Hello world!" 2>&1 | de-p1st-notify
Send stdout and specify an optional email subject:
echo "Hello world!" | de-p1st-notify "someSubject"
Send message without using a pipe:
de-p1st-notify "someSubject" "Hello World! What's up?"
Development
When started with environment variable DE_P1ST_EXEC_NOTIFY
set,
then the configuration file is read from ./etc/execNotify/cfg.ini.
Testing
See heading "Installation" above with steps to locally install this module.
Uploading to TestPyPI
More detailed instructions can be found at https://packaging.python.org/tutorials/packaging-projects/
- Set up a venv
- Increase/Adjust
[metadata][version]
in setup.cfg - Install the
build
andtwine
modules to your venv. - Next generate a distribution archive:
python3 -m build
- Upload the distribution packages with twine. For the username, use
__token__
. For the password, use a test.pypi.org API token:
python3 -m twine upload --repository testpypi dist/*
- Congratulations! You can view the uploaded module under: