예제 #1
0
def get_event_handler(converter):
    def on_created(event):
        converter(event.src_path)

    def on_modified(event):
        print(f'[MODIFIED] {event.__dict__}')

    handler = RegexMatchingEventHandler(regexes=[r".*[.]djvu"])
    handler.on_created = on_created
    handler.on_modified = on_modified

    return handler
예제 #2
0
    def start(self):
        """
        Starts watchdog thread to monitor for incoming files. Calls the
        child class's `read` method when a new file appears.
        """

        print 'FileSource start method called...', self.directory
        event_handler = RegexMatchingEventHandler(regexes=['.*'],
                                                  ignore_regexes=[],
                                                  ignore_directories=False,
                                                  case_sensitive=False)
        event_handler.on_created = self.read  # Call child's `read` method
        event_handler.on_modified = self.read
        watch_path = self.directory
        observer = Observer()
        observer.schedule(event_handler, watch_path, recursive=False)
        observer.start()
        print 'observer started.'
예제 #3
0
def main():
    if len(sys.argv) < 2:
        print(f"Error: At least one arg is required. Usage: miro_uploader <destination_path> [monitored_path]")
        exit(1)

    destination_path = sys.argv[1]
    monitored_path = sys.argv[2] if len(sys.argv) > 2 else '.'

    def on_created(event):
        print(f"hey, {event.src_path} has been created!")

    def on_modified(event):
        try:
            print(f"hey buddy, {event.src_path} has been modified")
            return_path = copy2(event.src_path, destination_path)
            print(f"hey, that a copy path {return_path}")
            remove(event.src_path)
        except Exception:
            pass

    event_handler = RegexMatchingEventHandler(regexes=[r"^[\x00-\x7F]*jpg$"],
                                              ignore_directories=True, case_sensitive=False)
    event_handler.on_created = on_created
    event_handler.on_modified = on_modified
    observer = Observer()
    observer.schedule(event_handler, monitored_path, recursive=False)
    observer.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
        observer.join()
    finally:
        observer.stop()
        observer.join()
예제 #4
0
    FORMAT = '%(asctime)-15s %(message)s'
    logging.basicConfig(filename='/tmp/watchdog.log',
                        level=logging.INFO,
                        format=FORMAT)
    logging.info('Started')

    path = sys.argv[1] if len(sys.argv) > 1 else '/home/norbert/Desktop'

    patterns = ['.+']
    ignore_patterns = [f"^{path}\.+"]
    ignore_dirs = False
    case_sensitive = True

    my_event_handler = RegexMatchingEventHandler(patterns, ignore_patterns,
                                                 ignore_dirs, case_sensitive)
    my_event_handler.on_created = on_created
    my_event_handler.on_deleted = on_delete
    my_event_handler.on_moved = on_moved
    my_event_handler.on_modified = on_modified

    go_recursively = True
    my_observer = Observer()

    my_observer.schedule(my_event_handler, path, recursive=go_recursively)

    my_observer.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        my_observer.stop()
예제 #5
0
def main(argv):

    ################################################### get options
    global path
    global my_observer
    global stop
    print(str(argv))
    print(len(argv))
    

    if len(argv) ==1:
        print('add parameters: ')
        params=input().split(' ')
    else:
        params=argv[1:]


    try: 
        opts, args = getopt.getopt( params ,"hp:",["help","path="])
        print('try ok')
    except getopt.GetoptError: 
        print('file_sync_to_gdrive_windows -p "path/to/git/project')
        sys.exit(2) 
        
    print('opts'+str(opts))
    print('args'+str(args))

    if len(opts) < len(args):
        print('file_sync_to_gdrive_windows -p "path/to/git/project')
        exit()    

    for opt, arg in opts: 
        if opt in ('-h','--help'): 
            print('file_sync_to_gdrive_windows -p "path/to/git/project')
            sys.exit() 
        elif opt in ("-p", "--path"): 
            path = arg
            print("incase of module log path:" + path + "\\auto_sync_console.log")
            log('path:' + path)
        else:
            print('not recognize')

    #patterns = ["*"]
    #ignore_patterns = [".*git"]
    ignore_directories = False
    case_sensitive = True
    #my_event_handler = PatternMatchingEventHandler(patterns, ignore_patterns, ignore_directories, case_sensitive)
    
    regexes = [".+"]

    #ignore = ".*c:/Users/eharvin/OneDrive - Ericsson AB/000Vince/programming/git/scripts\\\\.git.*"
    #c:/Users/eharvin/OneDrive - Ericsson AB/000Vince/programming/git/scripts
    #ignore_windows = "^" + path + "\\\\.git.*"
    #ignore_regexes = [".*\\\\.git$"]
    #ignore_regexes = ["git"]
    #ignore_linux = "^" + path + "/\\.git.*"

    #ignore_regexes = [ignore_windows, ignore_linux]
    #log("ignore: " + ignore_linux)
    
    if os.name == 'nt':
        ignore = "^" + re.escape(path) + "\\\\\\.git.*"
    else:
        ignore = "^" + path + "/\\.git.*"
    
    log("ignore: " + ignore)
    ignore_regexes = [ignore]    
    
    my_event_handler = RegexMatchingEventHandler (regexes=regexes,ignore_regexes=ignore_regexes, ignore_directories=ignore_directories, case_sensitive=case_sensitive)
    

    my_event_handler.on_created = on_created
    my_event_handler.on_deleted = on_deleted
    my_event_handler.on_modified = on_modified
    my_event_handler.on_moved = on_moved

    go_recursively = True
    my_observer = Observer()
    my_observer.schedule(my_event_handler, path, recursive=go_recursively)    

    my_observer.start()
    try:
        while True:
            time.sleep(1)
            if stop:
                break
    except KeyboardInterrupt:
        my_observer.stop()
        my_observer.join()
예제 #6
0
print(f'Connected to {device.name}')


# Define what to do when data is detected
def onDataDetected(event):
    device.addData(fieldName='Raw Data File',
                   fieldType='file',
                   filepath=event.src_path)


# Use watchdog built in regex event handler
# This will detect files that end in .csv
my_event_handler = RegexMatchingEventHandler([r".*\.csv$"])
# Set the handler for when files are created
my_event_handler.on_created(onDataDetected)
# Set up the watchdog observer to watch a specific folder
my_observer = Observer()
path = '/path/to/device/output/folder'
my_observer.schedule(my_event_handler, path)
# Start the observer
my_observer.start()

# Set up loop to stop the script terminating unless interupted
try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    my_observer.stop()
    my_observer.join()