FileWatcher is currently a Windows only C# and IronPython driven program for running scripts when files are changed. Started experimenting in a branch to make it driven by C++, QT, and Python for performance reasons, but I've since dropped that project.
Go to file
Brian 8a1c541b7e Fixed exception when files were updated while script was running.
m_UpdatedFiles was being updated while it was still being used by the
script thread.  Instead, copy the list, clear it out, and have the
script thread process the copy.
2013-12-22 19:53:03 -07:00
bin Fixed resource references. 2013-12-22 18:00:46 -07:00
code Fixed exception when files were updated while script was running. 2013-12-22 19:53:03 -07:00
scripts FileWatcher w/ sample script & sample settings 2013-12-20 20:16:48 -07:00
README.md Just realized I don't have an open source license specified. 2013-12-22 17:44:08 -07:00

README.md

FileWatcher

FileWatcher is currently a Windows only C# and IronPython driven program for running scripts when files are changed. I plan on upgrading it to be driven by C++ and Python for performance reasons (Using Windows forms to make the conversion fairly painless), and I might make an effort to make it cross platform in the future (don't hold your breath); if I was to do such an upgrade it would be with QT.

The program is still in Alpha, though it's basically useable. I still have some bugs to work out, and A LOT of features to work out. I also plan on having some premade scripts to make using it as easy as possible. I have never written a plugin system before (well, the current implementation isn't one, but I'd like to try), so bear with me, and maybe send me some feedback on how I can improve the program.

Requirements

  • IronPython 2.7.3

Notes

  • I realize FileWatcher doesn't yet have a license specified. Bear with me as I determine the best one to use.
  • FileWatcher runs in the background, it's a taskbar application. So when you close the windows, the program is still running. To exit you have to open up the menu File>Exit, or right click on the icon in the taskbar and hit Exit.
  • Play/Stop buttons do not yet do anything.
  • There are currently no hot keys, only keyboard shortcuts when the program is open. If you have a request for specific types of hotkeys, let me know.
  • There are some issues with running at startup that may not have been resolved in this version. I need to fix this.
  • Play/Stop buttons don't match the other icons because the icon pack doesn't contain such an option. I would like to fix this when I get the time.

Features

  • Script delay specifyable in units ms, s, m, and h. For instance, you can delay the script by "1s 500ms" or "1h 5m 25ms". This timer can be reset when a file is updated, or continue to count down when the first file was updated.
  • Script file is monitored for changes and can be reloaded at the press of a button.
  • Script Shortcut button for opening your favorite text editor and quickly updating the script.
  • If there's a problem with the script you'll be told what the basic issue is and where it is in the log window, or by hovering over the warning icon in the File Group where the script was loaded.
  • Create File Groups to monitor multiple directories, each group uses it's own script. (Currently you can't enable/disable groups, they're automatically active as long as everything is setup correctly)
  • System Tray notifications (currently not customizable, will be at a later time)
  • Console supports some basic ANSII escape sequences for colorization and what have you. This will be upgraded to support more at a later time (or if I find a support library to do it for me). This allows FileWatcher to support the Python Colorama package for colored Python output.

Screenshots

Screenshot 1

Examples for use

  • For Game Development purposes to "speed up" build times.
  • Build assets (shaders/textures/models) as they're updated. Instead of building everything when you go to run the game, assets are always being built in the background.
  • Your own customizable backup system.