|
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() |