| Crates.io | xf |
| lib.rs | xf |
| version | 0.7.0 |
| created_at | 2022-02-24 08:56:25.932903+00 |
| updated_at | 2022-03-12 01:21:21.063671+00 |
| description | File-aware dynamic command runner |
| homepage | https://github.com/sigoden/xf |
| repository | https://github.com/sigoden/xf |
| max_upload_size | |
| id | 538349 |
| size | 39,353 |
File-aware dynamic command runner.
Xf try to find a file from the current directory and upwards, and execute different command according to the different file found.
cargo install xf
Download from Github Releases, unzip and add xf to your $PATH.
Xf loads rules from configuration file.
The default path of configuration file is
$HOME/.xf, which can be specified with theXF_CONFIG_PATHenvironment variable.
Rule format is:
<file>: <command>
<file> tell xf what file to find, <command> tell xf what command to execute if found.
xfhas a built-in lowest priority rule:Xfile: $file $@
Configure the following rules:
Taskfile: bash $file $@
Run xf foo.
xf try to find for Taskfile file in the current directory, and if found, execute bash $file foo .
If not found, continue finding for Xfile file in the current directory, if found, execute Xfile foo (built-in rule).
If not found, enter the parent directory to continue this process.
File matching rules:
Ignore case. Xfile can match files xfile, xFile.
Find the filename that contains the rule filename. Xfile can match the files Xfile.sh, Xfile.cmd.
The following built-in variables can be used in the command part of rule.
$@ - pass-through command line parameters$file - file path$fileDir - file directory, process's cwd will be set to this value$currentDir - the current directoryThese variables(exclude $@) are also synced to environment variables:
$file => XF_FILE$fileDir => XF_FILE_DIR$currentDir => XF_CURRENT_DIRActually, the command name affect builtin-rule and environment variable prefix.
If you rename executable file xf to task:
The built-in rule will be Taskfile: $file $@
The default configuration file path will be $HOME/.task.
The environment variable XF_CONFIG_PATH will be TASK_CONFIG_PATH.
The environment variable for $file will be TASK_FILE。
Copyright (c) 2022 xf-developers.
argc is made available under the terms of either the MIT License or the Apache License 2.0, at your option.
See the LICENSE-APACHE and LICENSE-MIT files for license details.