From c96bd8ed7167202c7d4515b01e4390055e9d4a5c Mon Sep 17 00:00:00 2001 From: Jeena Date: Sun, 4 Jan 2026 18:22:42 +0900 Subject: [PATCH] Restructure as runnable Python module Convert email_forwarder.py to a package with __main__.py for module execution. Update systemd service to use -m email_forwarder. Configure pyproject.toml to exclude state/ from packaging. Changes: - Create email_forwarder/ package with __init__.py and __main__.py - Move main script to email_forwarder/email_forwarder.py - Update ExecStart to python -m email_forwarder - Add setuptools config to exclude state/ directory --- README.md | 2 +- email_forwarder.service | 2 +- email_forwarder/__init__.py | 1 + email_forwarder/__main__.py | 4 ++++ email_forwarder.py => email_forwarder/email_forwarder.py | 0 pyproject.toml | 5 ++++- 6 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 email_forwarder/__init__.py create mode 100644 email_forwarder/__main__.py rename email_forwarder.py => email_forwarder/email_forwarder.py (100%) diff --git a/README.md b/README.md index 282a618..f281f25 100644 --- a/README.md +++ b/README.md @@ -38,5 +38,5 @@ This will set up the virtual environment, systemd services, and provide post-ins ## Troubleshooting - Logs: `journalctl --user -u email_forwarder.service` -- Test: `source venv/bin/activate && python email_forwarder.py` +- Test: `source venv/bin/activate && python -m email_forwarder` - Timezone issues: Adjust UTC offset in script if needed. \ No newline at end of file diff --git a/email_forwarder.service b/email_forwarder.service index 5504c82..1d653ef 100644 --- a/email_forwarder.service +++ b/email_forwarder.service @@ -2,7 +2,7 @@ Description=Email Forwarder [Service] -ExecStart=${PROJECT_DIR}/venv/bin/python ${PROJECT_DIR}/email_forwarder.py +ExecStart=${PROJECT_DIR}/venv/bin/python -m email_forwarder ExecStartPost=/usr/bin/curl -fsS --retry 3 ${UPTIME_SUCCESS_URL} OnFailure=email_forwarder-fail-notify.service diff --git a/email_forwarder/__init__.py b/email_forwarder/__init__.py new file mode 100644 index 0000000..9e9bd7d --- /dev/null +++ b/email_forwarder/__init__.py @@ -0,0 +1 @@ +# Email Forwarder Package diff --git a/email_forwarder/__main__.py b/email_forwarder/__main__.py new file mode 100644 index 0000000..dbd20e8 --- /dev/null +++ b/email_forwarder/__main__.py @@ -0,0 +1,4 @@ +from .email_forwarder import main + +if __name__ == "__main__": + main() diff --git a/email_forwarder.py b/email_forwarder/email_forwarder.py similarity index 100% rename from email_forwarder.py rename to email_forwarder/email_forwarder.py diff --git a/pyproject.toml b/pyproject.toml index 9ed22fa..90d4fde 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,4 +7,7 @@ version = "0.1.0" dependencies = [ "imap-tools", "python-dotenv", -] \ No newline at end of file +] + +[tool.setuptools.packages.find] +exclude = ["state"] \ No newline at end of file