* switch_to_ppx_log.exe

: tools for smashing the tree related to async log
: 
:   switch_to_ppx_log.exe SUBCOMMAND
: 
: === subcommands ===
: 
:   alerts                     . tools for adding alerts for async log
:   smash                      . Replaces Log[.Global] logging functions with
:                                ppx_log equivalents
:   version                    . print version information
:   help                       . explain a given subcommand (perhaps recursively)

** version

: print version information
: 
:   switch_to_ppx_log.exe version 
: 
: === flags ===
: 
:   [-build-info]              . print build info for this build
:   [-version]                 . print the version of this build
:   [-help], -?                . print this help text and exit

** alerts

: tools for adding alerts for async log
: 
:   switch_to_ppx_log.exe alerts SUBCOMMAND
: 
: === subcommands ===
: 
:   add-to-jbuild              . add a alert disabling clause to a jbuild
:   add-to-ml                  . Add alerts to direct async log functions
:   help                       . explain a given subcommand (perhaps recursively)

*** add-to-jbuild

: add a alert disabling clause to a jbuild
: 
:   switch_to_ppx_log.exe alerts add-to-jbuild FILE
: 
: === flags ===
: 
:   [-help], -?                . print this help text and exit

*** add-to-ml

: Add alerts to direct async log functions
: 
:   switch_to_ppx_log.exe alerts add-to-ml 
: 
: === flags ===
: 
:   -actually-transform BOOL   . Actually transform the code, vs. only parse and
:                                print errors
:   -mode _                    . Strict mode creates slightly uglier code in a few
:                                cases in order to completely preserve output
:                                format (e.g., parentheses and locations of
:                                dynamic tags). There will be a loose mode that
:                                does not preserve output format, but that will
:                                come after other changes to ppx_log (targetting
:                                later in 2023-11) (can be: strict)
:   -repo FEATURE|PATH         . feature or repository
:   -shared-cache-path PATH    . This smash tool runs multiple workers in parallel
:                                and uses a temporary directory to save shared
:                                computations about what modules [Log]. This is
:                                the path to the temporary directory. (Usually
:                                $(mktemp -d) is fine, but this tool doesn't clean
:                                up the directory.)
:   [-- ...]                   . (for internal use)
:   [-dir PATH] ...            . directories to search
:   [-edge-case-error _]       . how to handle errors from common edge cases
:                                (default: print) (can be: ignore, keep, print)
:   [-exclude PATH] ...        . paths to ignore
:   [-glob GLOB] ...           . files matching glob
:   [-ignored BOOL]            . whether to include files listed in .hgignore
:   [-max-depth INT]           . maximum depth of subdirectories to search
:   [-max-jobs INT]            . maximum number of parallel instances
:   [-sort-by-path BOOL]       . whether to sort files in path order
:   [-whole-word BOOL]         . whether to restrict matches to whole words
:   [-help], -?                . print this help text and exit

** smash

: Replaces Log[.Global] logging functions with ppx_log equivalents
: 
:   switch_to_ppx_log.exe smash 
: 
: === flags ===
: 
:   -actually-transform BOOL   . Actually transform the code, vs. only parse and
:                                print errors
:   -mode _                    . Strict mode creates slightly uglier code in a few
:                                cases in order to completely preserve output
:                                format (e.g., parentheses and locations of
:                                dynamic tags). There will be a loose mode that
:                                does not preserve output format, but that will
:                                come after other changes to ppx_log (targetting
:                                later in 2023-11) (can be: strict)
:   -repo FEATURE|PATH         . feature or repository
:   -shared-cache-path PATH    . This smash tool runs multiple workers in parallel
:                                and uses a temporary directory to save shared
:                                computations about what modules [Log]. This is
:                                the path to the temporary directory. (Usually
:                                $(mktemp -d) is fine, but this tool doesn't clean
:                                up the directory.)
:   [-- ...]                   . (for internal use)
:   [-dir PATH] ...            . directories to search
:   [-edge-case-error _]       . how to handle errors from common edge cases
:                                (default: print) (can be: ignore, keep, print)
:   [-exclude PATH] ...        . paths to ignore
:   [-glob GLOB] ...           . files matching glob
:   [-ignored BOOL]            . whether to include files listed in .hgignore
:   [-max-depth INT]           . maximum depth of subdirectories to search
:   [-max-jobs INT]            . maximum number of parallel instances
:   [-sort-by-path BOOL]       . whether to sort files in path order
:   [-whole-word BOOL]         . whether to restrict matches to whole words
:   [-help], -?                . print this help text and exit
