Make rcb dump env vars to properly escape them

This commit is contained in:
einarf 2024-01-05 03:50:13 +01:00
parent 405bd4af15
commit 093dab93ca
4 changed files with 15 additions and 3 deletions

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# Dump all env vars so we can source them in cron jobs # Dump all env vars so we can source them in cron jobs
printenv | sed 's/^\(.*\)$/export \1/g' > /env.sh rcb dump-env > /env.sh
# Write crontab # Write crontab
rcb crontab > crontab rcb crontab > crontab

View File

@ -1 +1 @@
__version__ = '0.6.0' __version__ = '0.7.1'

View File

@ -51,6 +51,9 @@ def main():
elif args.action == "crontab": elif args.action == "crontab":
crontab(config) crontab(config)
elif args.action == "dump-env":
dump_env()
# Random test stuff here # Random test stuff here
elif args.action == "test": elif args.action == "test":
nodes = utils.get_swarm_nodes() nodes = utils.get_swarm_nodes()
@ -290,6 +293,14 @@ def crontab(config):
print(cron.generate_crontab(config)) print(cron.generate_crontab(config))
def dump_env():
"""Dump all environment variables to a script that can be sourced from cron"""
print("#!/bin/bash")
print("# This file was generated by restic-compose-backup")
for key, value in os.environ.items():
print("export {}='{}'".format(key, value))
def parse_args(): def parse_args():
parser = argparse.ArgumentParser(prog='restic_compose_backup') parser = argparse.ArgumentParser(prog='restic_compose_backup')
parser.add_argument( parser.add_argument(
@ -303,6 +314,7 @@ def parse_args():
'cleanup', 'cleanup',
'version', 'version',
'crontab', 'crontab',
'dump-env',
'test', 'test',
], ],
) )

View File

@ -3,7 +3,7 @@ from setuptools import setup, find_namespace_packages
setup( setup(
name="restic-compose-backup", name="restic-compose-backup",
url="https://github.com/ZettaIO/restic-compose-backup", url="https://github.com/ZettaIO/restic-compose-backup",
version="0.7.0", version="0.7.1",
author="Einar Forselv", author="Einar Forselv",
author_email="eforselv@gmail.com", author_email="eforselv@gmail.com",
packages=find_namespace_packages(include=[ packages=find_namespace_packages(include=[