Categorygithub.com/cmuench/inotify-proxy
modulepackage
0.0.0-20240305165055-d30f27447dae
Repository: https://github.com/cmuench/inotify-proxy.git
Documentation: pkg.go.dev

# README

inotify-proxy

Maintenance Badge Go Report Card Go Github Action Workflow

This tools helps to detect changed files in Docker Containers or in Virtual Machines (e.g. Vagrant). If a file is changed from host system a file watcher inside the container detects the change and triggers an inotify event.

The tool is designed to run over a longer period of time. It comes with a garbage collector to cleanup old watched files in memory.

Installation is simple -> It's one binary which can be downloaded and executed.

Purpose

Enables file watcher in a Docker Container/Virtual Machine with a NFS mounted filesystem.

Installation

See Wiki page for more informations. https://github.com/cmuench/inotify-proxy/wiki/Installation

Usage

Usage of ./inotify-proxy:
  -no-config
        Do not load config.
  -profile string
        Defines a special profile with extensions to look for. This speeds up the process. Available profiles are 'magento2-theme' (default "default")
  -sleep int
        Cycle time in seconds. Defines time to sleep after each filesystem walk. Default 2s (default 2)

Examples

# Magento 2 Profile
./inotify-proxy -profile magento2 path/to/your/project

# Change frequence of file checks to 5s (default 2s)
./inotify-proxy -sleep 5 path/to/your/project

# Multiple pathes to watch ...
./inotify-proxy project/path1 project/path2 

Config

If the file inotify-proxy.yaml exist in the current working directory, it will be applied.

Example config:

---
watch:
- directory: /tmp/watch1
  profile: magento2

- directory: /tmp/watch2
  profile: sass

- directory: /tmp/watch3
  extensions: [.css, .html]

The profile setting is optional. The config loading can be skipped by adding the option -no-config.

Supported Profiles

ProfileAllowed file extensions
defaultAll extensions are allowed
javascript.js .ts
less.less
magento2.css .html .less .sass .js .php .phtml .ts .xml
magento2-theme.css .hs .less .sass .ts
sass.sass .scss
vue-storefront.css .js .sass .ts

# Variables

Version defines the version of the application.