announce/borg-announce.py

changeset 148
ff975e768112
equal deleted inserted replaced
147:c42d69c44170 148:ff975e768112
1 #!/usr/bin/python3
2 import argparse
3 from ssdpy import SSDPServer
4 import socket
5
6 parser=argparse.ArgumentParser(
7 description="BorgBackup SSDP/UPnP announcer",
8 formatter_class=argparse.RawDescriptionHelpFormatter)
9
10 parser.add_argument(
11 '--uuid',
12 dest='uuid',
13 required=True,
14 help='UUID of borgbackup instance')
15
16 parser.add_argument(
17 '--user',
18 dest='user',
19 required=False,
20 help='Borgbackup user (for SSH login)')
21
22 def main():
23 args=parser.parse_args()
24
25 # Find our own IP
26 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
27 s.connect(("8.8.8.8", 80))
28 my_ip = s.getsockname()[0]
29 s.close()
30 location = "ssh://{}{}/".format(args.user + "@" if args.user else "", my_ip)
31
32 server = SSDPServer(usn = args.uuid, device_type = "borg", location = location)
33 server.serve_forever()
34
35 main()

mercurial