# Project Manager ## Install ```bash pip install project-manager -i https://instreamatic.com/nexus/repository/pypi/simple/ ``` ## Usage ### Show tasks list ```bash pm [-v] [-vv] ``` ### Run task ```bash pm [-v] [-vv] ``` ## Presets locations - default presets `$PROJECT_MANAGER/project_manager/preset/default/*.toml` - user preset `$HOME/.pm.toml` - project preset `./.pm.toml` ## Preset format ### Template ```toml [presets..tasks..] conditions = [""] commands = [""] ``` ### Copy default config sample ```toml [presets.config.tasks.setup.config] conditions = ["file(config/base.yaml)", "file(config/current.yaml) | not"] commands = ["cp ../../config/admin/dev/localhost.yaml config/current.yaml"] ``` ## Condition pipe format `function_name1(arg1,arg2) | function_name2(arg1)` ### Condition functions - **file**: `file(filename)` - check file/directory exists or load file content as dict for next pipe - **get**: `get(keypath)` - get value from dict by key path with dot separator - **not**: `not` - invert pipe value as bool - **equal**: `equal(string)` - compare pipe value with string - **search**: `search(regexp, [index=1])` - match pipe value with regexp and return matched group by index (default 1)