#!/usr/bin/env python3 import argparse import subprocess import pathlib def main() -> None: parser = argparse.ArgumentParser( description="Use OpenSSH and rsync to deploy artifacts", ) parser.add_argument( "-a", "--artifacts", required=True, help="local path to artifacts folder" ) parser.add_argument( "-H", "--host", default="cloud", help="target `Host` name from ~/.ssh/config" ) parser.add_argument( "-p", "--path", default="/srv/http/deploy.xengineering.eu/public/git/iot-contact/main/", help="remote path to destination folder on server", ) args = parser.parse_args() subprocess.run( [ "rsync", "-av", "--delete", f"{str(pathlib.Path(args.artifacts))}/", f"{args.host}:{args.path}", ], shell=False, check=True, ) if __name__ == "__main__": main()