docs » hs.pathwatcher

Watch paths recursively for changes

This simple example watches your Hammerspoon directory for changes, and when it sees a change, reloads your configs:

local myWatcher = hs.pathwatcher.new(os.getenv("HOME") .. "/.hammerspoon/", hs.reload):start()

This module is based primarily on code from the previous incarnation of Mjolnir by Steven Degutis.

API Overview

API Documentation

Constructors

new
Signature hs.pathwatcher.new(path, fn) -> watcher
Type Constructor
Description

Creates a new path watcher object

Parameters:

  • path - A string containing the path to be watched
  • fn - A function to be called when changes are detected. It should accept two arguments:
    • paths: a table containing a list of file paths that have changed
    • flagTables: a table containing a list of tables denoting how each corresponding file in paths has changed, each containing boolean values indicating which types of events occurred; The possible keys are:
      • mustScanSubDirs
      • userDropped
      • kernelDropped
      • eventIdsWrapped
      • historyDone
      • rootChanged
      • mount
      • unmount
      • itemCreated
      • itemRemoved
      • itemInodeMetaMod
      • itemRenamed
      • itemModified
      • itemFinderInfoMod
      • itemChangeOwner
      • itemXattrMod
      • itemIsFile
      • itemIsDir
      • itemIsSymlink
      • ownEvent (OS X 10.9+)
      • itemIsHardlink (OS X 10.10+)
      • itemIsLastHardlink (OS X 10.10+)

Returns:

  • An hs.pathwatcher object

Notes:

Source extensions/pathwatcher/internal.m

Methods

start
Signature hs.pathwatcher:start()
Type Method
Description

Starts a path watcher

Parameters:

  • None

Returns:

  • The hs.pathwatcher object
Source extensions/pathwatcher/internal.m
stop
Signature hs.pathwatcher:stop()
Type Method
Description

Stops a path watcher

Parameters:

  • None

Returns:

  • None
Source extensions/pathwatcher/internal.m