def main(): larg_parser = core.larg.LatusArg( "securely syncs a folder to cloud storage") larg_parser.parser.add_argument('-p', '--password', required=True, help="latus password") larg_parser.parser.add_argument('-l', '--local', metavar='path', required=True, help="latus folder") larg_parser.parser.add_argument('-c', '--cloud', metavar='path', required=True, help="cloud folder") args = larg_parser.parse() keyboard_event_handle = win32event.CreateEvent(None, 0, 0, None) sync = core.sync.Sync(args.password, args.local, args.cloud, exit_event_handle=keyboard_event_handle, verbose=args.verbose) sync.start() input('hit enter to exit') win32event.PulseEvent(keyboard_event_handle)
def Write(self): try: conf = ConfigParser.ConfigParser() for sect in self._settings: if not conf.has_section(sect): conf.add_section(sect) for name in self._settings[sect][1]: val = self._settings[sect][1][name] if self._settings[sect][0]: # is binary? val = binascii.b2a_hex(val) conf.set(sect, option=name, value=val) conf.write(file(self._filename, 'w')) except ConfigParser.Error: return False else: if sys.platform.startswith("win"): import win32event, win32api # raise the event so other programs can reload config hEvent = None try: hEvent = win32event.CreateEvent(None, True, False, CONFIG_EVENT) win32event.PulseEvent(hEvent) win32api.CloseHandle(hEvent) except win32api.error, e: if hEvent is not None: win32api.CloseHandle(hEvent) print "Event Failed", str(e) return True
def wake_workers(): """ Try to wake workers if possible. If we fail we must wait until the worker polls next, so its not a big deal. """ print "Waking workers %s" % (children, ) try: for i in range(config.WORKERS): win32event.PulseEvent(SyncEvent) return except AttributeError, e: pass
def terminate_children(): try: for pid in children: win32event.PulseEvent(TerminateEvent) return except AttributeError: pass for pid in children: try: #print "Terminating child %s" % pid os.kill(pid, signal.SIGINT) except: pass
def _set_state(self, value): self._state = value event = self._get_state_event(value) win32event.PulseEvent(event)
def pulse (self): """Pulse (ie fire once and stop) the event""" win32event.PulseEvent (self.event)
def trigger_all_events(self): for win32event_handle in self.win32event_handles: win32event.PulseEvent(win32event_handle) for evt in self.events: evt.set() self.exit_control_flag = True
def eventTriggered(evt1, evt2, evt3): print("Triggered") print(evt1) print(evt2) print(win32evtlog.EvtRender(evt3, win32evtlog.EvtRenderEventXml)) win32event.PulseEvent(evtHandle)