1#!/usr/bin/env python3
2
3r"""
4See help text for details.
5"""
6
7import sys
8
9save_dir_path = sys.path.pop(0)
10
11modules = ['gen_arg', 'gen_print', 'gen_valid', 'event_notification']
12for module in modules:
13    exec("from " + module + " import *")
14
15sys.path.insert(0, save_dir_path)
16
17parser = argparse.ArgumentParser(
18    usage='%(prog)s [OPTIONS]',
19    description="%(prog)s will subscribe and receive event notifications when "
20                + "properties change for the given dbus path.",
21    formatter_class=argparse.ArgumentDefaultsHelpFormatter,
22    prefix_chars='-+')
23parser.add_argument(
24    '--host',
25    default='',
26    help='The host name or IP of the system to subscribe to.')
27parser.add_argument(
28    '--username',
29    default='root',
30    help='The username for the host system.')
31parser.add_argument(
32    '--password',
33    default='',
34    help='The password for the host system.')
35parser.add_argument(
36    '--dbus_path',
37    default='',
38    help='The path to be monitored (e.g. "/xyz/openbmc_project/sensors").')
39parser.add_argument(
40    '--enable_trace',
41    choices=[0, 1],
42    default=0,
43    help='Indicates that trace needs to be enabled.')
44
45
46# Populate stock_list with options we want.
47stock_list = [("test_mode", 0), ("quiet", 0), ("debug", 0)]
48
49
50def main():
51    gen_setup()
52    my_event = event_notification(host, username, password)
53    event_notifications = my_event.subscribe(dbus_path, enable_trace)
54    print_var(event_notifications, fmt=[no_header(), strip_brackets()])
55
56
57main()
58