watch_opts_t Derived Type

type, public :: watch_opts_t

Watcher configuration options.

Values are typically assembled from: - hard-coded defaults, - fpm.toml overrides ([extra.fpm-watch]), - command-line flags (--watch-*).

Time values (poll, debounce, rescan) are in seconds. Verbosity level: - -1: quiet (errors only) - 0: normal - 1..2: more detail


Inherits

type~~watch_opts_t~~InheritsGraph type~watch_opts_t watch_opts_t string_t string_t type~watch_opts_t->string_t ignore, include, enabled_features

Inherited by

type~~watch_opts_t~~InheritedByGraph type~watch_opts_t watch_opts_t type~watch_config_t watch_config_t type~watch_config_t->type~watch_opts_t w type~watcher_t watcher_t type~watcher_t->type~watch_config_t cfg

Components

Type Visibility Attributes Name Initial
real, public :: debounce = 0.2

Optional periodic rescan interval (seconds). 0 disables periodic rescans.

logical, public :: debug = .false.

Poll interval (seconds) between change scans.

type(string_t), public, allocatable :: enabled_features(:)

Run once (init + optional run-on-start) and exit (CI-friendly).

type(string_t), public, allocatable :: ignore(:)

Glob patterns to include; if empty, includes all.

type(string_t), public, allocatable :: include(:)

Names of optional feature plugins to enable.

logical, public :: low_cpu = .false.

Glob patterns to ignore.

logical, public :: once = .false.
real, public :: poll = 0.5

Debounce interval (seconds) used after the first detected change.

logical, public :: print_files_once = .false.

Suppress fpm output; keep only fpm-watch status lines.

real, public :: rescan = 0.0

Run the command once immediately on startup.

logical, public :: run_on_start = .true.

Print the watched file list once at startup (requires high verbosity).

logical, public :: silent_fpm = .false.

Also watch dependency project sources (can include paths under build dir).

integer, public :: verbosity = 0

Enable extra debug output and internal timing/status messages.

logical, public :: watch_deps = .false.

Use OS sleep for waiting to minimize idle CPU usage.


Source Code

   type watch_opts_t
      !! Verbosity level:
      !! - `-1`: quiet (errors only)
      !! - `0`: normal
      !! - `1..2`: more detail
      integer :: verbosity = 0
      !! Enable extra debug output and internal timing/status messages.
      logical :: debug = .false.
      !! Poll interval (seconds) between change scans.
      real    :: poll = 0.5
      !! Debounce interval (seconds) used after the first detected change.
      real    :: debounce = 0.2
      !! Optional periodic rescan interval (seconds). `0` disables periodic rescans.
      real    :: rescan = 0.0
      !! Run the command once immediately on startup.
      logical :: run_on_start = .true.
      !! Print the watched file list once at startup (requires high verbosity).
      logical :: print_files_once = .false.
      !! Suppress `fpm` output; keep only `fpm-watch` status lines.
      logical :: silent_fpm = .false.
      !! Also watch dependency project sources (can include paths under build dir).
      logical :: watch_deps = .false.
      !! Use OS sleep for waiting to minimize idle CPU usage.
      logical :: low_cpu = .false.
      !! Glob patterns to ignore.
      type(string_t), allocatable :: ignore(:)
      !! Glob patterns to include; if empty, includes all.
      type(string_t), allocatable :: include(:)
      !! Names of optional feature plugins to enable.
      type(string_t), allocatable :: enabled_features(:)
      !! Run once (init + optional run-on-start) and exit (CI-friendly).
      logical :: once = .false.
   end type watch_opts_t