#!/usr/bin/env python3 import os import sys import getopt import traceback from signald import Signal from configparser import ConfigParser def usage(): print(os.path.basename(sys.argv[0]) + " [-h|--help] [-r|--register]") print("Runs the signal frontend to N. Reads the number to use from n_signal.ini") print(" -h|--help prints this help and exits") print(" -r|--register register the number with signal") def read_config(): config_object = ConfigParser() #config_object.read(os.environ.get('XDG_CONFIG_HOME') + "/n_signal.ini") config_object.read("n_signal.ini") info = config_object["INFO"] return info["number"] def register_signald(number): s = Signal(number) s.register(voice=False) code = input(f"Please input register code send via sms to {number}: ") s.verify(code) def main(): number = read_config() try: opts, args = getopt.getopt(sys.argv[1:], "hr", ["help", "register"]) except getopt.GetoptError as err: # print help information and exit: print(err) # will print something like "option -a not recognized" usage() sys.exit(2) title = "" for o, a in opts: if o in ("-h", "--help"): usage() sys.exit() elif o in ("-r", "--register"): register_signald() sys.exit() else: assert False, "unhandled option: " + o print(f"Hello, World! {number}") if __name__ == "__main__": main()