1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #!/usr/bin/env python2
- # -*- coding:utf-8 -*-
- import sys
- import socket
- import argparse
- import json
- import struct
- if __name__ == "__main__":
- parser = argparse.ArgumentParser(prog="tunasynctl")
- parser.add_argument("-s", "--socket",
- default="/var/run/tunasync.sock", help="socket file")
- parser.add_argument("command", help="command")
- parser.add_argument("target", nargs="?", default="__ALL__", help="target")
- args = parser.parse_args()
- sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
- try:
- sock.connect(args.socket)
- except socket.error as msg:
- print(msg)
- sys.exit(1)
- pack = json.dumps({
- 'cmd': args.command,
- 'target': args.target,
- })
- try:
- sock.sendall(struct.pack('!H', len(pack)) + pack)
- length = struct.unpack('!H', sock.recv(2))[0]
- print(sock.recv(length))
- except Exception as e:
- print(e)
- finally:
- sock.close()
- # vim: ts=4 sw=4 sts=4 expandtab
|