#!/usr/bin/env python

import argparse
import json
import glob
import socket

button = {
    'left-mouse': 1,
    'middle-mouse': 2,
    'right-mouse': 3,
    'wheel-up': 4,
    'wheel-down': 5,
}

def main():
    parser = argparse.ArgumentParser(description='send commands to bumblebee-status')
    parser.add_argument('-b', '--button', choices=['left-mouse', 'right-mouse', 'middle-mouse', 'wheel-up', 'wheel-down'], help='button to emulate', default='left-mouse')
    parser.add_argument('-i', '--id', help='ID of widget to trigger', required=True)
    parser.add_argument('-m', '--module', help='name of the module to trigger', required=True)

    args = parser.parse_args()

    for f in glob.glob('/tmp/.bumblebee-status.*'):
        print('accessing {}'.format(f))
        s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
        s.connect(f)
        s.sendall(json.dumps({
            'name': args.module,
            'instance': args.id, 
            'button': button[args.button],
        }).encode('ascii'))

if __name__ == "__main__":
    main()

# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4