#!/usr/bin/env python3
# vim:ts=4:sts=4:sw=4:expandtab

import argparse
import pathlib
import socket
import sys

LOCATION = '/tmp/gutowski/shared_state.sock'

parser = argparse.ArgumentParser(description='Shared State Sender')
parser.add_argument('--location', default=LOCATION)
parser.add_argument('message')
args = parser.parse_args()

bits = [ bit=='1' for bit in 
        ''.join([ f'{byte:08b}' for byte in
            bytes(args.message, 'utf8') ]) ]

with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as connection:
    try:
        connection.connect(args.location)
        for bit in bits:
            connection.send(b'+' if bit else b'-')
            while True:
                connection.send(b'?')
                state = connection.recv(1)
                if state == b'0':
                    break
    finally:
        connection.close()
