restic-compose-backup/src/restic_compose_backup/config.py

44 lines
1.6 KiB
Python
Raw Normal View History

2019-04-15 17:25:42 +02:00
import os
class Config:
default_backup_command = ". /env.sh && /backup.sh && rcb cleanup > /proc/1/fd/1 2>&1"
2019-12-08 06:38:56 +01:00
default_crontab_schedule = "0 2 * * *"
2019-11-15 14:23:56 +01:00
"""Bag for config values"""
2019-04-16 18:21:42 +02:00
def __init__(self, check=True):
2019-12-04 23:25:15 +01:00
# Mandatory values
self.repository = os.environ.get('RESTIC_REPOSITORY')
self.password = os.environ.get('RESTIC_REPOSITORY')
2019-12-08 06:38:56 +01:00
self.cron_schedule = os.environ.get('CRON_SCHEDULE') or self.default_crontab_schedule
self.cron_command = os.environ.get('CRON_COMMAND') or self.default_backup_command
2020-03-07 02:55:22 +01:00
self.swarm_mode = os.environ.get('SWARM_MODE') or False
self.include_project_name = os.environ.get('INCLUDE_PROJECT_NAME') or False
self.exclude_bind_mounts = os.environ.get('EXCLUDE_BIND_MOUNTS') or False
self.skip_cleanup = os.environ.get('SKIP_CLEANUP') or False
2019-11-12 12:39:49 +01:00
2019-12-05 00:38:09 +01:00
# Log
self.log_level = os.environ.get('LOG_LEVEL')
2019-12-04 23:25:15 +01:00
# forget / keep
2020-11-16 11:31:19 +01:00
self.keep_last = os.environ.get('KEEP_LAST') or "7"
self.keep_hourly = os.environ.get('KEEP_HOURLY') or "24"
2019-12-04 23:25:15 +01:00
self.keep_daily = os.environ.get('KEEP_DAILY') or "7"
self.keep_weekly = os.environ.get('KEEP_WEEKLY') or "4"
self.keep_monthly = os.environ.get('KEEP_MONTHLY') or "12"
self.keep_yearly = os.environ.get('KEEP_YEARLY') or "3"
2020-11-16 11:31:19 +01:00
self.keep_tags = os.environ.get('KEEP_TAGS') or "keep"
2019-12-04 23:25:15 +01:00
2019-04-16 18:21:42 +02:00
if check:
self.check()
2019-04-15 17:25:42 +02:00
def check(self):
if not self.repository:
2019-12-04 23:25:15 +01:00
raise ValueError("RESTIC_REPOSITORY env var not set")
2019-04-15 17:25:42 +02:00
if not self.password:
2019-12-04 23:25:15 +01:00
raise ValueError("RESTIC_REPOSITORY env var not set")
2020-03-07 02:55:22 +01:00
config = Config()