mirror of
https://github.com/deadc0de6/dotdrop.git
synced 2026-02-04 17:24:46 +00:00
documentation
This commit is contained in:
2
CONTRIBUTING.md
vendored
2
CONTRIBUTING.md
vendored
@@ -127,7 +127,7 @@ Potential *included* entries:
|
|||||||
* Profile's *include*
|
* Profile's *include*
|
||||||
|
|
||||||
Variables are then used to resolve different elements in the config file:
|
Variables are then used to resolve different elements in the config file:
|
||||||
see [this](docs/config-file.md#variables).
|
see [this](docs/config/config-file.md#variables).
|
||||||
|
|
||||||
## Rules
|
## Rules
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ dotfiles:
|
|||||||
## Dynamic actions
|
## Dynamic actions
|
||||||
|
|
||||||
Variables ([config variables and dynvariables](config-file.md#variables)
|
Variables ([config variables and dynvariables](config-file.md#variables)
|
||||||
and [template variables](templating.md#template-variables)) can be used
|
and [template variables](../templating.md#template-variables)) can be used
|
||||||
in actions for more advanced use-cases.
|
in actions for more advanced use-cases.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
@@ -15,9 +15,9 @@ Entry | Description | Default
|
|||||||
`default_actions` | List of action keys to execute for all installed dotfiles (See [actions](config-actions.md)) | -
|
`default_actions` | List of action keys to execute for all installed dotfiles (See [actions](config-actions.md)) | -
|
||||||
`diff_command` | The diff command to use for diffing files | `diff -r -u {0} {1}`
|
`diff_command` | The diff command to use for diffing files | `diff -r -u {0} {1}`
|
||||||
`dotpath` | Path to the directory containing the dotfiles to be managed by dotdrop (absolute path or relative to the config file location) | `dotfiles`
|
`dotpath` | Path to the directory containing the dotfiles to be managed by dotdrop (absolute path or relative to the config file location) | `dotfiles`
|
||||||
`filter_file` | List of paths to load templating filters from (See [Templating available filters](templating.md#template-filters)) | -
|
`filter_file` | List of paths to load templating filters from (See [Templating available filters](../templating.md#template-filters)) | -
|
||||||
`force_chmod` | If true, do not ask confirmation to apply permissions on install | false
|
`force_chmod` | If true, do not ask confirmation to apply permissions on install | false
|
||||||
`func_file` | List of paths to load templating functions from (See [Templating available methods](templating.md#template-methods)) | -
|
`func_file` | List of paths to load templating functions from (See [Templating available methods](../templating.md#template-methods)) | -
|
||||||
`ignore_missing_in_dotdrop` | Ignore missing files in dotdrop when comparing and importing (See [Ignore missing](config-file.md#ignore-missing)) | false
|
`ignore_missing_in_dotdrop` | Ignore missing files in dotdrop when comparing and importing (See [Ignore missing](config-file.md#ignore-missing)) | false
|
||||||
`ignoreempty` | Do not deploy template if empty | false
|
`ignoreempty` | Do not deploy template if empty | false
|
||||||
`impignore` | List of patterns to ignore when importing (enclose in quotes when using wildcards; see [ignore patterns](config-file.md#ignore-patterns)) | -
|
`impignore` | List of patterns to ignore when importing (enclose in quotes when using wildcards; see [ignore patterns](config-file.md#ignore-patterns)) | -
|
||||||
@@ -30,7 +30,7 @@ Entry | Description | Default
|
|||||||
`key_separator` | Separator to use on dotfile key generation on `import` | `_`
|
`key_separator` | Separator to use on dotfile key generation on `import` | `_`
|
||||||
`link_dotfile_default` | Set a dotfile's `link` attribute to this value when undefined. Possible values: *nolink*, *absolute*, *relative* (See [Symlinking dotfiles](config-file.md#symlinking-dotfiles)) | `nolink`
|
`link_dotfile_default` | Set a dotfile's `link` attribute to this value when undefined. Possible values: *nolink*, *absolute*, *relative* (See [Symlinking dotfiles](config-file.md#symlinking-dotfiles)) | `nolink`
|
||||||
`link_on_import` | Set a dotfile's `link` attribute to this value when importing. Possible values: *nolink*, *absolute*, *relative* [Symlinking dotfiles](config-file.md#symlinking-dotfiles)) | `nolink`
|
`link_on_import` | Set a dotfile's `link` attribute to this value when importing. Possible values: *nolink*, *absolute*, *relative* [Symlinking dotfiles](config-file.md#symlinking-dotfiles)) | `nolink`
|
||||||
`longkey` | Use long keys for dotfiles when importing (See [Import dotfiles](usage.md#import-dotfiles)) | false
|
`longkey` | Use long keys for dotfiles when importing (See [Import dotfiles](../usage.md#import-dotfiles)) | false
|
||||||
`minversion` | (*for internal use, do not modify*) Provides the minimal dotdrop version to use | -
|
`minversion` | (*for internal use, do not modify*) Provides the minimal dotdrop version to use | -
|
||||||
`showdiff` | On install, show a diff before asking to overwrite (See `--showdiff`) | false
|
`showdiff` | On install, show a diff before asking to overwrite (See `--showdiff`) | false
|
||||||
`template_dotfile_default` | Disable templating on all dotfiles when set to false | true
|
`template_dotfile_default` | Disable templating on all dotfiles when set to false | true
|
||||||
26
docs/config-file.md → docs/config/config-file.md
vendored
26
docs/config-file.md → docs/config/config-file.md
vendored
@@ -35,7 +35,7 @@ parametrize the following elements of the config:
|
|||||||
Note that variables used in `actions` and `transformations`
|
Note that variables used in `actions` and `transformations`
|
||||||
are resolved when the action/transformation is executed
|
are resolved when the action/transformation is executed
|
||||||
(See [Dynamic actions](config-actions.md#dynamic-actions),
|
(See [Dynamic actions](config-actions.md#dynamic-actions),
|
||||||
[Dynamic transformations](config-transformations.md#dynamic-transformations) and [Templating](templating.md)).
|
[Dynamic transformations](config-transformations.md#dynamic-transformations) and [Templating](../templating.md)).
|
||||||
|
|
||||||
The following variables are available in the config files:
|
The following variables are available in the config files:
|
||||||
|
|
||||||
@@ -44,13 +44,13 @@ The following variables are available in the config files:
|
|||||||
* [User variables defined in the config](config-variables.md)
|
* [User variables defined in the config](config-variables.md)
|
||||||
* [Profile variables defined in the config](config-profiles.md#profile-variables-entry)
|
* [Profile variables defined in the config](config-profiles.md#profile-variables-entry)
|
||||||
* Environment variables: `{{@@ env['MY_VAR'] @@}}`
|
* Environment variables: `{{@@ env['MY_VAR'] @@}}`
|
||||||
* The [enriched variables](templating.md#enriched-variables)
|
* The [enriched variables](../templating.md#enriched-variables)
|
||||||
* Dotdrop header: `{{@@ header() @@}}` (see [Dotdrop header](templating.md#dotdrop-header))
|
* Dotdrop header: `{{@@ header() @@}}` (see [Dotdrop header](../templating.md#dotdrop-header))
|
||||||
|
|
||||||
as well as all [template methods](templating.md#template-methods) and [template filters](templating.md#template-filters).
|
as well as all [template methods](../templating.md#template-methods) and [template filters](../templating.md#template-filters).
|
||||||
|
|
||||||
Note that all variables available in the config file will
|
Note that all variables available in the config file will
|
||||||
then be available during [templating](templating.md).
|
then be available during [templating](../templating.md).
|
||||||
|
|
||||||
Here are some rules on the use of variables in configs:
|
Here are some rules on the use of variables in configs:
|
||||||
|
|
||||||
@@ -116,11 +116,11 @@ On `update`, the following rule is applied:
|
|||||||
|
|
||||||
## Symlinking dotfiles
|
## Symlinking dotfiles
|
||||||
|
|
||||||
see the [symlink dotfiles documentation](howto/symlink-dotfiles.md).
|
see the [symlink dotfiles documentation](../howto/symlink-dotfiles.md).
|
||||||
|
|
||||||
## Template config entries
|
## Template config entries
|
||||||
|
|
||||||
Some entries in the config can be templated (See [templating](templating.md)):
|
Some entries in the config can be templated (See [templating](../templating.md)):
|
||||||
|
|
||||||
Entry | Related doc
|
Entry | Related doc
|
||||||
-------- | -------------
|
-------- | -------------
|
||||||
@@ -164,16 +164,16 @@ profiles:
|
|||||||
|
|
||||||
It is possible to ignore specific patterns when using dotdrop.
|
It is possible to ignore specific patterns when using dotdrop.
|
||||||
|
|
||||||
* For [install](usage.md#install-dotfiles):
|
* For [install](../usage.md#install-dotfiles):
|
||||||
* Using config block [instignore](config-config.md)
|
* Using config block [instignore](config-config.md)
|
||||||
* Using dotfiles block [instignore](config-dotfiles.md)
|
* Using dotfiles block [instignore](config-dotfiles.md)
|
||||||
* For [import](usage.md#import-dotfiles):
|
* For [import](../usage.md#import-dotfiles):
|
||||||
* Using config block [impignore](config-config.md)
|
* Using config block [impignore](config-config.md)
|
||||||
* For [compare](usage.md#compare-dotfiles):
|
* For [compare](../usage.md#compare-dotfiles):
|
||||||
* Using config block [cmpignore](config-config.md)
|
* Using config block [cmpignore](config-config.md)
|
||||||
* Using dotfiles block [cmpignore](config-dotfiles.md)
|
* Using dotfiles block [cmpignore](config-dotfiles.md)
|
||||||
* Using the command line switch `-i`/`--ignore`
|
* Using the command line switch `-i`/`--ignore`
|
||||||
* For [update](usage.md#update-dotfiles):
|
* For [update](../usage.md#update-dotfiles):
|
||||||
* Using config block [upignore](config-config.md)
|
* Using config block [upignore](config-config.md)
|
||||||
* Using dotfiles block [upignore](config-dotfiles.md)
|
* Using dotfiles block [upignore](config-dotfiles.md)
|
||||||
* Using the command line switch `-i`/`--ignore`
|
* Using the command line switch `-i`/`--ignore`
|
||||||
@@ -289,8 +289,8 @@ profiles:
|
|||||||
|
|
||||||
## Ignore missing
|
## Ignore missing
|
||||||
|
|
||||||
Sometimes, it is nice to have [update](usage.md#update-dotfiles) not copy all the files in the installed directory
|
Sometimes, it is nice to have [update](../usage.md#update-dotfiles) not copy all the files in the installed directory
|
||||||
or [compare](usage.md#compare-dotfiles) diff them.
|
or [compare](../usage.md#compare-dotfiles) diff them.
|
||||||
|
|
||||||
For example,
|
For example,
|
||||||
maybe you only want to include a single configuration file in your repository
|
maybe you only want to include a single configuration file in your repository
|
||||||
@@ -6,7 +6,7 @@ Entry | Description
|
|||||||
-------- | -------------
|
-------- | -------------
|
||||||
`dotfiles` | The dotfiles associated with this profile
|
`dotfiles` | The dotfiles associated with this profile
|
||||||
`import` | List of paths containing dotfile keys for this profile (absolute path or relative to the config file location; see [Import profile dotfiles from file](config-profiles.md#profile-import-entry)).
|
`import` | List of paths containing dotfile keys for this profile (absolute path or relative to the config file location; see [Import profile dotfiles from file](config-profiles.md#profile-import-entry)).
|
||||||
`include` | Include all elements (dotfiles, actions, (dyn)variables, etc) from another profile (See [Include dotfiles from another profile](config-profiles.md#profile-include-entry) and [meta profiles](howto/group-hosts.md))
|
`include` | Include all elements (dotfiles, actions, (dyn)variables, etc) from another profile (See [Include dotfiles from another profile](config-profiles.md#profile-include-entry) and [meta profiles](../howto/group-hosts.md))
|
||||||
`variables` | Profile-specific variables (See [Variables](config-file.md#variables))
|
`variables` | Profile-specific variables (See [Variables](config-file.md#variables))
|
||||||
`dynvariables` | Profile-specific interpreted variables (See [Interpreted variables](config-dynvars.md))
|
`dynvariables` | Profile-specific interpreted variables (See [Interpreted variables](config-dynvars.md))
|
||||||
`actions` | List of action keys that need to be defined in the **actions** entry below (See [actions](config-actions.md))
|
`actions` | List of action keys that need to be defined in the **actions** entry below (See [actions](config-actions.md))
|
||||||
@@ -40,7 +40,7 @@ the `include` entry to avoid redundancy.
|
|||||||
|
|
||||||
Note that everything from the included profile is made available
|
Note that everything from the included profile is made available
|
||||||
(actions, variables/dynvariables, etc). See also an example in
|
(actions, variables/dynvariables, etc). See also an example in
|
||||||
[meta profiles](howto/group-hosts.md).
|
[meta profiles](../howto/group-hosts.md).
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
```yaml
|
```yaml
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
For examples of transformation uses, see:
|
For examples of transformation uses, see:
|
||||||
|
|
||||||
* [Handle compressed directories](howto/store-compressed-directories.md)
|
* [Handle compressed directories](../howto/store-compressed-directories.md)
|
||||||
* [Handle secrets](howto/sensitive-dotfiles.md)
|
* [Handle secrets](../howto/sensitive-dotfiles.md)
|
||||||
|
|
||||||
**Notes**:
|
**Notes**:
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ There are two types of transformations available:
|
|||||||
* They have two mandatory arguments:
|
* They have two mandatory arguments:
|
||||||
* **{0}** will be replaced with the dotfile to process
|
* **{0}** will be replaced with the dotfile to process
|
||||||
* **{1}** will be replaced with a temporary file to store the result of the transformation
|
* **{1}** will be replaced with a temporary file to store the result of the transformation
|
||||||
* This Happens **before** the dotfile is templated (see [templating](templating.md))
|
* This Happens **before** the dotfile is templated (see [templating](../templating.md))
|
||||||
|
|
||||||
* **Write transformations**: used to transform files before updating a dotfile ([config](config-config.md) key `trans_write`)
|
* **Write transformations**: used to transform files before updating a dotfile ([config](config-config.md) key `trans_write`)
|
||||||
* Used for command `update` and `import`
|
* Used for command `update` and `import`
|
||||||
@@ -28,7 +28,7 @@ There are two types of transformations available:
|
|||||||
* **{1}** will be replaced with a temporary file to store the result of the transformation
|
* **{1}** will be replaced with a temporary file to store the result of the transformation
|
||||||
|
|
||||||
A typical use-case for transformations is when dotfiles need to be
|
A typical use-case for transformations is when dotfiles need to be
|
||||||
stored encrypted or compressed. For more, see [the howto](howto/howto.md).
|
stored encrypted or compressed. For more, see [the howto](../howto/howto.md).
|
||||||
|
|
||||||
Note that transformations cannot be used if the dotfile is to be linked (when `link: absolute|relative|link_children`).
|
Note that transformations cannot be used if the dotfile is to be linked (when `link: absolute|relative|link_children`).
|
||||||
|
|
||||||
@@ -73,7 +73,7 @@ trans_write:
|
|||||||
|
|
||||||
As for [dynamic actions](config-actions.md#dynamic-actions), transformations support
|
As for [dynamic actions](config-actions.md#dynamic-actions), transformations support
|
||||||
the use of variables ([variables and dynvariables](config-file.md#variables)
|
the use of variables ([variables and dynvariables](config-file.md#variables)
|
||||||
and [template variables](templating.md#template-variables)).
|
and [template variables](../templating.md#template-variables)).
|
||||||
|
|
||||||
A very dumb example:
|
A very dumb example:
|
||||||
```yaml
|
```yaml
|
||||||
@@ -38,4 +38,4 @@ config:
|
|||||||
- uservariables.yaml:optional
|
- uservariables.yaml:optional
|
||||||
```
|
```
|
||||||
|
|
||||||
For an example, see [prompt user for variables](howto/prompt-user-for-variables.md).
|
For an example, see [prompt user for variables](../howto/prompt-user-for-variables.md).
|
||||||
4
docs/getting-started.md
vendored
4
docs/getting-started.md
vendored
@@ -23,7 +23,7 @@ $ wget https://raw.githubusercontent.com/deadc0de6/dotdrop/master/config.yaml
|
|||||||
```
|
```
|
||||||
It is recommended to store your config file directly within your repository
|
It is recommended to store your config file directly within your repository
|
||||||
(*my-dotfiles* in the example above), but you could save it in different places if you wish;
|
(*my-dotfiles* in the example above), but you could save it in different places if you wish;
|
||||||
see [config location](config-file.md#location) for more.
|
see [config location](config/config-file.md#location) for more.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ tree my-dotfiles
|
$ tree my-dotfiles
|
||||||
@@ -38,7 +38,7 @@ in your preferred shell to call dotdrop with the config file path argument.
|
|||||||
alias dotdrop='dotdrop --cfg=<path-to-your-config.yaml>'
|
alias dotdrop='dotdrop --cfg=<path-to-your-config.yaml>'
|
||||||
```
|
```
|
||||||
|
|
||||||
For more info on the config file format, see [the config file doc](config-file.md).
|
For more info on the config file format, see [the config file doc](config/config-file.md).
|
||||||
|
|
||||||
## Basic usage
|
## Basic usage
|
||||||
|
|
||||||
|
|||||||
2
docs/howto/append.md
vendored
2
docs/howto/append.md
vendored
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Sometimes it might be useful to be able to append some text to a
|
Sometimes it might be useful to be able to append some text to a
|
||||||
file. Dotdrop is able to do that with the help of
|
file. Dotdrop is able to do that with the help of
|
||||||
[actions](../config-actions.md) and a temporary file.
|
[actions](../config/config-actions.md) and a temporary file.
|
||||||
|
|
||||||
Below is a config example to append to a file:
|
Below is a config example to append to a file:
|
||||||
```yaml
|
```yaml
|
||||||
|
|||||||
2
docs/howto/create-special-files.md
vendored
2
docs/howto/create-special-files.md
vendored
@@ -1,7 +1,7 @@
|
|||||||
# Create files on install
|
# Create files on install
|
||||||
|
|
||||||
One way to create symlinks (or any other special file) is to use a combination of
|
One way to create symlinks (or any other special file) is to use a combination of
|
||||||
[actions](../config-actions.md) and a *fake* dotfile.
|
[actions](../config/config-actions.md) and a *fake* dotfile.
|
||||||
|
|
||||||
Let's say, for example, you have a list of directories you want to link
|
Let's say, for example, you have a list of directories you want to link
|
||||||
from under `~/.original` to `~/symlinks`.
|
from under `~/.original` to `~/symlinks`.
|
||||||
|
|||||||
4
docs/howto/merge-files-when-installing.md
vendored
4
docs/howto/merge-files-when-installing.md
vendored
@@ -48,12 +48,12 @@ Dotdrop will then automagically include the files into your vimrc when handling
|
|||||||
## Merge all files in a directory
|
## Merge all files in a directory
|
||||||
|
|
||||||
To include all files in a directory, a combination of
|
To include all files in a directory, a combination of
|
||||||
[dynvariables](../config-dynvars.md)
|
[dynvariables](../config/config-dynvars.md)
|
||||||
and [Jinja2 directives](https://jinja.palletsprojects.com/en/2.11.x/) have to be used.
|
and [Jinja2 directives](https://jinja.palletsprojects.com/en/2.11.x/) have to be used.
|
||||||
|
|
||||||
Let's say all files in `<dotpath>/toinclude` need to be included into a dotfile.
|
Let's say all files in `<dotpath>/toinclude` need to be included into a dotfile.
|
||||||
|
|
||||||
First define a [dynvariables](../config-dynvars.md)
|
First define a [dynvariables](../config/config-dynvars.md)
|
||||||
in the config file which will look for files to include in the above directory:
|
in the config file which will look for files to include in the above directory:
|
||||||
```yaml
|
```yaml
|
||||||
dynvariables:
|
dynvariables:
|
||||||
|
|||||||
4
docs/howto/prompt-user-for-variables.md
vendored
4
docs/howto/prompt-user-for-variables.md
vendored
@@ -1,12 +1,12 @@
|
|||||||
# Prompt user for variables
|
# Prompt user for variables
|
||||||
|
|
||||||
With the use of [uservariables](../config-uservars.md),
|
With the use of [uservariables](../config/config-uservars.md),
|
||||||
one can define specific variables that need to be initially filled in manually
|
one can define specific variables that need to be initially filled in manually
|
||||||
by the user on first run.
|
by the user on first run.
|
||||||
|
|
||||||
The provided values are then automatically saved by dotdrop to `uservariables.yaml`,
|
The provided values are then automatically saved by dotdrop to `uservariables.yaml`,
|
||||||
which can be included in the main config as a file from which variables are imported
|
which can be included in the main config as a file from which variables are imported
|
||||||
using [import_variables](../config-config.md).
|
using [import_variables](../config/config-config.md).
|
||||||
|
|
||||||
Let's say, for example, that you want to manually provide the email value
|
Let's say, for example, that you want to manually provide the email value
|
||||||
on new hosts you deploy your dotfiles to.
|
on new hosts you deploy your dotfiles to.
|
||||||
|
|||||||
6
docs/howto/sensitive-dotfiles.md
vendored
6
docs/howto/sensitive-dotfiles.md
vendored
@@ -26,7 +26,7 @@ alias dotdrop='eval $(grep -v "^#" ~/dotfiles/.env) /usr/bin/dotdrop --cfg=~/dot
|
|||||||
|
|
||||||
The above aliases load all the variables from `~/dotfiles/.env`
|
The above aliases load all the variables from `~/dotfiles/.env`
|
||||||
(while omitting lines starting with `#`) before calling dotdrop.
|
(while omitting lines starting with `#`) before calling dotdrop.
|
||||||
Defined variables can then be used [in the config](../config-file.md#template-config-entries)
|
Defined variables can then be used [in the config](../config/config-file.md#template-config-entries)
|
||||||
or [for templating dotfiles](../templating.md)
|
or [for templating dotfiles](../templating.md)
|
||||||
|
|
||||||
For more see [the doc on environment variables](../templating.md#environment-variables).
|
For more see [the doc on environment variables](../templating.md#environment-variables).
|
||||||
@@ -52,7 +52,7 @@ Now whenever you install/compare your dotfile, the `_decrypt` transformation wil
|
|||||||
to get the clear version of the file.
|
to get the clear version of the file.
|
||||||
When updating the `_encrypt` transformation will transform the file to store it encrypted.
|
When updating the `_encrypt` transformation will transform the file to store it encrypted.
|
||||||
|
|
||||||
See [transformations](../config-transformations.md).
|
See [transformations](../config/config-transformations.md).
|
||||||
|
|
||||||
## gpg examples
|
## gpg examples
|
||||||
|
|
||||||
@@ -106,4 +106,4 @@ trans_write:
|
|||||||
_encrypt: "echo {{@@ gpg_password @@}} | gpg -q --batch --yes --passphrase-fd 0 --no-tty -o {1} -c {0}"
|
_encrypt: "echo {{@@ gpg_password @@}} | gpg -q --batch --yes --passphrase-fd 0 --no-tty -o {1} -c {0}"
|
||||||
```
|
```
|
||||||
|
|
||||||
See also [transformations](../config-transformations.md).
|
See also [transformations](../config/config-transformations.md).
|
||||||
2
docs/howto/sharing-content.md
vendored
2
docs/howto/sharing-content.md
vendored
@@ -66,7 +66,7 @@ export DB_PORT='4521'
|
|||||||
The previous method, albeit flexible, is a bit cumbersome for some use cases.
|
The previous method, albeit flexible, is a bit cumbersome for some use cases.
|
||||||
For example, when the dotfiles belong to different profiles, the cleanest
|
For example, when the dotfiles belong to different profiles, the cleanest
|
||||||
solution consists of using
|
solution consists of using
|
||||||
[profile variables](../config-profiles.md#profile-variables-entry). This is achieved by:
|
[profile variables](../config/config-profiles.md#profile-variables-entry). This is achieved by:
|
||||||
|
|
||||||
1. Creating the merged dotfile with an arbitrary name somewhere in `dotpath`.
|
1. Creating the merged dotfile with an arbitrary name somewhere in `dotpath`.
|
||||||
2. Adding some variables in the merged dotfile via templating.
|
2. Adding some variables in the merged dotfile via templating.
|
||||||
|
|||||||
2
docs/howto/store-compressed-directories.md
vendored
2
docs/howto/store-compressed-directories.md
vendored
@@ -26,4 +26,4 @@ And the *write* transformation `compress` is run when updating the dotfile direc
|
|||||||
tar -cf {1} -C {0} .
|
tar -cf {1} -C {0} .
|
||||||
```
|
```
|
||||||
|
|
||||||
See [transformations](../config-transformations.md).
|
See [transformations](../config/config-transformations.md).
|
||||||
4
docs/howto/symlink-dotfiles.md
vendored
4
docs/howto/symlink-dotfiles.md
vendored
@@ -117,10 +117,10 @@ $ tree -L 1 ~/.vim
|
|||||||
## Templating symlinked dotfiles
|
## Templating symlinked dotfiles
|
||||||
|
|
||||||
Dotfiles not using any templating directives are directly linked
|
Dotfiles not using any templating directives are directly linked
|
||||||
to dotdrop's `dotpath` directory (see [the config file doc](../config-file.md)).
|
to dotdrop's `dotpath` directory (see [the config file doc](../config/config-file.md)).
|
||||||
|
|
||||||
When using templating directives, however, the dotfiles are first installed into
|
When using templating directives, however, the dotfiles are first installed into
|
||||||
`workdir` (defaults to *~/.config/dotdrop*; see [the doc](../config-config.md))
|
`workdir` (defaults to *~/.config/dotdrop*; see [the doc](../config/config-config.md))
|
||||||
and then symlinked there.
|
and then symlinked there.
|
||||||
This applies to both dotfiles with `link: absolute|relative` and `link: link_children`.
|
This applies to both dotfiles with `link: absolute|relative` and `link: link_children`.
|
||||||
|
|
||||||
|
|||||||
2
docs/installation.md
vendored
2
docs/installation.md
vendored
@@ -193,7 +193,7 @@ $ ./dotdrop.sh --cfg <my-config-file> files
|
|||||||
Beside the Python dependencies defined in [requirements.txt](https://github.com/deadc0de6/dotdrop/blob/master/requirements.txt),
|
Beside the Python dependencies defined in [requirements.txt](https://github.com/deadc0de6/dotdrop/blob/master/requirements.txt),
|
||||||
dotdrop depends on the following tools:
|
dotdrop depends on the following tools:
|
||||||
|
|
||||||
* `diff` (unless a different tool is used, see [diff_command](config-config.md#config-block))
|
* `diff` (unless a different tool is used, see [diff_command](config/config-config.md#config-block))
|
||||||
* `git` (only if using the entry point script [dotdrop.sh](https://github.com/deadc0de6/dotdrop/blob/master/dotdrop.sh))
|
* `git` (only if using the entry point script [dotdrop.sh](https://github.com/deadc0de6/dotdrop/blob/master/dotdrop.sh))
|
||||||
* `readlink` or `realpath` (only if using the entry point script [dotdrop.sh](https://github.com/deadc0de6/dotdrop/blob/master/dotdrop.sh))
|
* `readlink` or `realpath` (only if using the entry point script [dotdrop.sh](https://github.com/deadc0de6/dotdrop/blob/master/dotdrop.sh))
|
||||||
|
|
||||||
|
|||||||
16
docs/templating.md
vendored
16
docs/templating.md
vendored
@@ -6,8 +6,8 @@ or the below sections for more information on how to template your dotfiles.
|
|||||||
|
|
||||||
## Templating or not templating
|
## Templating or not templating
|
||||||
|
|
||||||
The dotfile config entry [template](config-dotfiles.md#dotfiles-block)
|
The dotfile config entry [template](config/config-dotfiles.md#dotfiles-block)
|
||||||
and the global config entry [template_dotfile_default](config-config.md)
|
and the global config entry [template_dotfile_default](config/config-config.md)
|
||||||
allow to control whether a dotfile is processed by the templating engine.
|
allow to control whether a dotfile is processed by the templating engine.
|
||||||
|
|
||||||
Obviously, if the dotfile uses template directives, it needs to be templated. However, if it
|
Obviously, if the dotfile uses template directives, it needs to be templated. However, if it
|
||||||
@@ -38,13 +38,13 @@ The following variables are available in templates:
|
|||||||
* `{{@@ profile @@}}` contains the profile provided to dotdrop.
|
* `{{@@ profile @@}}` contains the profile provided to dotdrop.
|
||||||
* `{{@@ env['MY_VAR'] @@}}` contains environment variables (see [Environment variables](#environment-variables)).
|
* `{{@@ env['MY_VAR'] @@}}` contains environment variables (see [Environment variables](#environment-variables)).
|
||||||
* `{{@@ header() @@}}` contains the dotdrop header (see [Dotdrop header](#dotdrop-header)).
|
* `{{@@ header() @@}}` contains the dotdrop header (see [Dotdrop header](#dotdrop-header)).
|
||||||
* `{{@@ _dotdrop_dotpath @@}}` contains the [dotpath](config-config.md) absolute path.
|
* `{{@@ _dotdrop_dotpath @@}}` contains the [dotpath](config/config-config.md) absolute path.
|
||||||
* `{{@@ _dotdrop_cfgpath @@}}` contains the [config file](config-file.md) absolute path.
|
* `{{@@ _dotdrop_cfgpath @@}}` contains the [config file](config/config-file.md) absolute path.
|
||||||
* `{{@@ _dotdrop_workdir @@}}` contains the [workdir](config-config.md) absolute path.
|
* `{{@@ _dotdrop_workdir @@}}` contains the [workdir](config/config-config.md) absolute path.
|
||||||
* The [enriched variables](#enriched-variables)
|
* The [enriched variables](#enriched-variables)
|
||||||
* Dotfile specific variables (see [Dotfile variables](#dotfile-variables))
|
* Dotfile specific variables (see [Dotfile variables](#dotfile-variables))
|
||||||
* All defined config variables (see [Variables](config-file.md#variables))
|
* All defined config variables (see [Variables](config/config-file.md#variables))
|
||||||
* All defined config interpreted variables (see [Interpreted variables](config-dynvars.md#dynvariables-entry))
|
* All defined config interpreted variables (see [Interpreted variables](config/config-dynvars.md#dynvariables-entry))
|
||||||
|
|
||||||
## Enriched variables
|
## Enriched variables
|
||||||
|
|
||||||
@@ -85,7 +85,7 @@ It's possible to access environment variables inside the templates:
|
|||||||
```
|
```
|
||||||
|
|
||||||
This allows for storing host-specific properties and/or secrets in environment variables.
|
This allows for storing host-specific properties and/or secrets in environment variables.
|
||||||
It is recommended to use `variables` (see [config variables](config-file.md#variables))
|
It is recommended to use `variables` (see [config variables](config/config-file.md#variables))
|
||||||
instead of environment variables unless these contain sensitive information that
|
instead of environment variables unless these contain sensitive information that
|
||||||
shouldn't be versioned in Git (see [handle secrets doc](howto/sensitive-dotfiles.md)).
|
shouldn't be versioned in Git (see [handle secrets doc](howto/sensitive-dotfiles.md)).
|
||||||
|
|
||||||
|
|||||||
22
docs/usage.md
vendored
22
docs/usage.md
vendored
@@ -41,7 +41,7 @@ $ dotdrop import ~/.xinitrc
|
|||||||
```
|
```
|
||||||
|
|
||||||
You can control how the dotfile key is generated in the config file
|
You can control how the dotfile key is generated in the config file
|
||||||
with the following [config entries](config-config.md):
|
with the following [config entries](config/config-config.md):
|
||||||
|
|
||||||
* `longkey`
|
* `longkey`
|
||||||
* `false` (default): take the shortest unique path
|
* `false` (default): take the shortest unique path
|
||||||
@@ -72,7 +72,7 @@ $ dotdrop import ~/.zshrc --as=~/.zshrc.test
|
|||||||
By importing a path using the profile special keyword `ALL`, a dotfile will be created
|
By importing a path using the profile special keyword `ALL`, a dotfile will be created
|
||||||
in the config but won't be associated to any profile.
|
in the config but won't be associated to any profile.
|
||||||
|
|
||||||
To ignore specific patterns during import, see [the ignore patterns](config-file.md#ignore-patterns).
|
To ignore specific patterns during import, see [the ignore patterns](config/config-file.md#ignore-patterns).
|
||||||
|
|
||||||
For more options, see the usage with `dotdrop --help`.
|
For more options, see the usage with `dotdrop --help`.
|
||||||
|
|
||||||
@@ -89,11 +89,11 @@ Some available options:
|
|||||||
|
|
||||||
* `-t`/`--temp`: Install the dotfile(s) to a temporary directory for review (helping to debug templating issues, for example).
|
* `-t`/`--temp`: Install the dotfile(s) to a temporary directory for review (helping to debug templating issues, for example).
|
||||||
Note that actions are not executed in this mode.
|
Note that actions are not executed in this mode.
|
||||||
* `-a`/`--force-actions`: Force the execution of actions even if the dotfiles are not installed (see [Fake dotfile and actions](config-actions.md#fake-dotfile-and-actions) as an alternative)
|
* `-a`/`--force-actions`: Force the execution of actions even if the dotfiles are not installed (see [Fake dotfile and actions](config/config-actions.md#fake-dotfile-and-actions) as an alternative)
|
||||||
* `-f`/`--force`: Do not ask for any confirmation
|
* `-f`/`--force`: Do not ask for any confirmation
|
||||||
* `-W`/`--workdir-clear`: Clear the `workdir` before installing dotfiles (see [the config entry](config-config.md) `clear_workdir`)
|
* `-W`/`--workdir-clear`: Clear the `workdir` before installing dotfiles (see [the config entry](config/config-config.md) `clear_workdir`)
|
||||||
|
|
||||||
To ignore specific patterns during installation, see [the ignore patterns](config-file.md#ignore-patterns).
|
To ignore specific patterns during installation, see [the ignore patterns](config/config-file.md#ignore-patterns).
|
||||||
|
|
||||||
For more options, see the usage with `dotdrop --help`.
|
For more options, see the usage with `dotdrop --help`.
|
||||||
|
|
||||||
@@ -105,19 +105,19 @@ $ dotdrop compare
|
|||||||
```
|
```
|
||||||
|
|
||||||
The diffing is done with the UNIX tool `diff` as the backend; one can provide a specific
|
The diffing is done with the UNIX tool `diff` as the backend; one can provide a specific
|
||||||
diff command using [the config entry](config-config.md) `diff_command`.
|
diff command using [the config entry](config/config-config.md) `diff_command`.
|
||||||
|
|
||||||
You can specify against which destination file to compare:
|
You can specify against which destination file to compare:
|
||||||
```bash
|
```bash
|
||||||
$ dotdrop compare -C ~/.vimrc
|
$ dotdrop compare -C ~/.vimrc
|
||||||
```
|
```
|
||||||
|
|
||||||
To ignore specific patterns, see [the ignore patterns](config-file.md#ignore-patterns).
|
To ignore specific patterns, see [the ignore patterns](config/config-file.md#ignore-patterns).
|
||||||
|
|
||||||
To completely ignore all files not present in `dotpath` see [Ignore missing](config-file.md#ignore-missing).
|
To completely ignore all files not present in `dotpath` see [Ignore missing](config/config-file.md#ignore-missing).
|
||||||
|
|
||||||
If you want to get notified on files present in the `workdir` but not tracked
|
If you want to get notified on files present in the `workdir` but not tracked
|
||||||
by dotdrop see the [compare_workdir](config-config.md).
|
by dotdrop see the [compare_workdir](config/config-config.md).
|
||||||
|
|
||||||
For more options, see the usage with `dotdrop --help`.
|
For more options, see the usage with `dotdrop --help`.
|
||||||
|
|
||||||
@@ -169,9 +169,9 @@ $ dotdrop update --key f_vimrc
|
|||||||
|
|
||||||
If not argument is provided, all dotfiles for the selected profile are updated.
|
If not argument is provided, all dotfiles for the selected profile are updated.
|
||||||
|
|
||||||
To ignore specific patterns, see [the dedicated page](config-file.md#ignore-patterns).
|
To ignore specific patterns, see [the dedicated page](config/config-file.md#ignore-patterns).
|
||||||
|
|
||||||
To completely ignore all files not present in `dotpath`, see [Ignore missing](config-file.md#ignore-missing).
|
To completely ignore all files not present in `dotpath`, see [Ignore missing](config/config-file.md#ignore-missing).
|
||||||
|
|
||||||
There are two cases when updating a dotfile:
|
There are two cases when updating a dotfile:
|
||||||
|
|
||||||
|
|||||||
18
mkdocs.yml
vendored
18
mkdocs.yml
vendored
@@ -14,15 +14,15 @@ nav:
|
|||||||
- 'Getting started': 'getting-started.md'
|
- 'Getting started': 'getting-started.md'
|
||||||
- 'Usage': 'usage.md'
|
- 'Usage': 'usage.md'
|
||||||
- 'Config':
|
- 'Config':
|
||||||
- 'Config file': 'config-file.md'
|
- 'Config file': 'config/config-file.md'
|
||||||
- 'Config block': 'config-config.md'
|
- 'Config block': 'config/config-config.md'
|
||||||
- 'Dotfiles block': 'config-dotfiles.md'
|
- 'Dotfiles block': 'config/config-dotfiles.md'
|
||||||
- 'Profiles block': 'config-profiles.md'
|
- 'Profiles block': 'config/config-profiles.md'
|
||||||
- 'Actions block': 'config-actions.md'
|
- 'Actions block': 'config/config-actions.md'
|
||||||
- 'Transformations block': 'config-transformations.md'
|
- 'Transformations block': 'config/config-transformations.md'
|
||||||
- 'Variables block': 'config-variables.md'
|
- 'Variables block': 'config/config-variables.md'
|
||||||
- 'Dynvariables block': 'config-dynvars.md'
|
- 'Dynvariables block': 'config/config-dynvars.md'
|
||||||
- 'Uservariables block': 'config-uservars.md'
|
- 'Uservariables block': 'config/config-uservars.md'
|
||||||
- 'Templating':
|
- 'Templating':
|
||||||
- 'Templating': 'templating.md'
|
- 'Templating': 'templating.md'
|
||||||
- 'HowTo':
|
- 'HowTo':
|
||||||
|
|||||||
31
test-doc.sh
vendored
Executable file
31
test-doc.sh
vendored
Executable file
@@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# author: deadc0de6 (https://github.com/deadc0de6)
|
||||||
|
# Copyright (c) 2022, deadc0de6
|
||||||
|
|
||||||
|
## test the doc with remark
|
||||||
|
## https://github.com/remarkjs/remark-validate-links
|
||||||
|
set +e
|
||||||
|
which remark >/dev/null 2>&1
|
||||||
|
r="$?"
|
||||||
|
set -e
|
||||||
|
if [ "$r" != "0" ]; then
|
||||||
|
echo "[WARNING] install \"remark\" to test the doc"
|
||||||
|
else
|
||||||
|
remark -f -u validate-links docs/
|
||||||
|
remark -f -u validate-links *.md
|
||||||
|
fi
|
||||||
|
|
||||||
|
### test the doc with markdown-link-check
|
||||||
|
### https://github.com/tcort/markdown-link-check
|
||||||
|
#set +e
|
||||||
|
#which markdown-link-check >/dev/null 2>&1
|
||||||
|
#r="$?"
|
||||||
|
#set -e
|
||||||
|
#if [ "$r" != "0" ]; then
|
||||||
|
# echo "[WARNING] install \"markdown-link-check\" to test the doc"
|
||||||
|
#else
|
||||||
|
# for i in `find docs -iname '*.md'`; do markdown-link-check $i; done
|
||||||
|
# markdown-link-check README.md
|
||||||
|
#fi
|
||||||
|
|
||||||
|
echo "documentation OK"
|
||||||
61
test-syntax.sh
vendored
Executable file
61
test-syntax.sh
vendored
Executable file
@@ -0,0 +1,61 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# author: deadc0de6 (https://github.com/deadc0de6)
|
||||||
|
# Copyright (c) 2022, deadc0de6
|
||||||
|
|
||||||
|
# stop on first error
|
||||||
|
#set -ev
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# versions
|
||||||
|
echo "pylint version:"
|
||||||
|
pylint --version
|
||||||
|
echo "pycodestyle version:"
|
||||||
|
pycodestyle --version
|
||||||
|
echo "pyflakes version:"
|
||||||
|
pyflakes --version
|
||||||
|
|
||||||
|
# PEP8 tests
|
||||||
|
which pycodestyle >/dev/null 2>&1
|
||||||
|
[ "$?" != "0" ] && echo "Install pycodestyle" && exit 1
|
||||||
|
echo "testing with pycodestyle"
|
||||||
|
# W503: Line break occurred before a binary operator
|
||||||
|
# W504: Line break occurred after a binary operator
|
||||||
|
pycodestyle --ignore=W503,W504 dotdrop/
|
||||||
|
pycodestyle tests/
|
||||||
|
pycodestyle scripts/
|
||||||
|
|
||||||
|
# pyflakes tests
|
||||||
|
echo "testing with pyflakes"
|
||||||
|
pyflakes dotdrop/
|
||||||
|
pyflakes tests/
|
||||||
|
|
||||||
|
# pylint
|
||||||
|
echo "testing with pylint"
|
||||||
|
# https://pylint.pycqa.org/en/latest/user_guide/checkers/features.html
|
||||||
|
# R0902: too-many-instance-attributes
|
||||||
|
# R0913: too-many-arguments
|
||||||
|
# R0903: too-few-public-methods
|
||||||
|
# R0914: too-many-locals
|
||||||
|
# R0915: too-many-statements
|
||||||
|
# R0912: too-many-branches
|
||||||
|
# R0911: too-many-return-statements
|
||||||
|
# R0904: too-many-public-methods
|
||||||
|
pylint \
|
||||||
|
--disable=R0902 \
|
||||||
|
--disable=R0913 \
|
||||||
|
--disable=R0903 \
|
||||||
|
--disable=R0914 \
|
||||||
|
--disable=R0915 \
|
||||||
|
--disable=R0912 \
|
||||||
|
--disable=R0911 \
|
||||||
|
--disable=R0904 \
|
||||||
|
dotdrop/
|
||||||
|
|
||||||
|
set +e
|
||||||
|
exceptions="save_uservariables_name\|@@\|diff_cmd\|original,\|modified,"
|
||||||
|
# f-string errors and missing f literal
|
||||||
|
find dotdrop/ -iname '*.py' -exec grep --with-filename -n -v "f'" {} \; | grep -v "{'" | grep -v "${exceptions}" | grep "'.*}" && echo "bad string format (1): ${errs}" && exit 1
|
||||||
|
find dotdrop/ -iname '*.py' -exec grep --with-filename -n -v 'f"' {} \; | grep -v "f'" | grep -v '{"' | grep -v "${exceptions}" | grep '".*}' && echo "bad string format (2): ${errs}" && exit 1
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "syntax OK"
|
||||||
94
tests.sh
vendored
94
tests.sh
vendored
@@ -6,68 +6,6 @@
|
|||||||
#set -ev
|
#set -ev
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# versions
|
|
||||||
echo "pylint version:"
|
|
||||||
pylint --version
|
|
||||||
echo "pycodestyle version:"
|
|
||||||
pycodestyle --version
|
|
||||||
echo "pyflakes version:"
|
|
||||||
pyflakes --version
|
|
||||||
|
|
||||||
# PEP8 tests
|
|
||||||
which pycodestyle >/dev/null 2>&1
|
|
||||||
[ "$?" != "0" ] && echo "Install pycodestyle" && exit 1
|
|
||||||
echo "testing with pycodestyle"
|
|
||||||
# W503: Line break occurred before a binary operator
|
|
||||||
# W504: Line break occurred after a binary operator
|
|
||||||
pycodestyle --ignore=W503,W504 dotdrop/
|
|
||||||
pycodestyle tests/
|
|
||||||
pycodestyle scripts/
|
|
||||||
|
|
||||||
# pyflakes tests
|
|
||||||
echo "testing with pyflakes"
|
|
||||||
pyflakes dotdrop/
|
|
||||||
pyflakes tests/
|
|
||||||
|
|
||||||
# pylint
|
|
||||||
echo "testing with pylint"
|
|
||||||
# https://pylint.pycqa.org/en/latest/user_guide/checkers/features.html
|
|
||||||
# R0902: too-many-instance-attributes
|
|
||||||
# R0913: too-many-arguments
|
|
||||||
# R0903: too-few-public-methods
|
|
||||||
# R0914: too-many-locals
|
|
||||||
# R0915: too-many-statements
|
|
||||||
# R0912: too-many-branches
|
|
||||||
# R0911: too-many-return-statements
|
|
||||||
# R0904: too-many-public-methods
|
|
||||||
pylint \
|
|
||||||
--disable=R0902 \
|
|
||||||
--disable=R0913 \
|
|
||||||
--disable=R0903 \
|
|
||||||
--disable=R0914 \
|
|
||||||
--disable=R0915 \
|
|
||||||
--disable=R0912 \
|
|
||||||
--disable=R0911 \
|
|
||||||
--disable=R0904 \
|
|
||||||
dotdrop/
|
|
||||||
|
|
||||||
set +e
|
|
||||||
|
|
||||||
exceptions="save_uservariables_name\|@@\|diff_cmd\|original,\|modified,"
|
|
||||||
# f-string errors and missing f literal
|
|
||||||
find dotdrop/ -iname '*.py' -exec grep --with-filename -n -v "f'" {} \; | grep -v "{'" | grep -v "${exceptions}" | grep "'.*}" \
|
|
||||||
&& echo "bad string format (1): ${errs}" && exit 1
|
|
||||||
|
|
||||||
find dotdrop/ -iname '*.py' -exec grep --with-filename -n -v 'f"' {} \; | grep -v "f'" | grep -v '{"' | grep -v "${exceptions}" | grep '".*}' \
|
|
||||||
&& echo "bad string format (2): ${errs}" && exit 1
|
|
||||||
|
|
||||||
# use of .format()
|
|
||||||
#grep -r -n --with-filename '\.format(' dotdrop/ \
|
|
||||||
# && echo "bad string format (3): ${errs}" && exit 1
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# coverage file location
|
|
||||||
rl="readlink -f"
|
rl="readlink -f"
|
||||||
if ! ${rl} "${0}" >/dev/null 2>&1; then
|
if ! ${rl} "${0}" >/dev/null 2>&1; then
|
||||||
rl="realpath"
|
rl="realpath"
|
||||||
@@ -78,6 +16,12 @@ if ! ${rl} "${0}" >/dev/null 2>&1; then
|
|||||||
fi
|
fi
|
||||||
cur=`dirname $(${rl} "${0}")`
|
cur=`dirname $(${rl} "${0}")`
|
||||||
|
|
||||||
|
# test syntax
|
||||||
|
${cur}/test-syntax.sh
|
||||||
|
|
||||||
|
# test doc
|
||||||
|
${cur}/test-doc.sh
|
||||||
|
|
||||||
workers=${DOTDROP_WORKERS}
|
workers=${DOTDROP_WORKERS}
|
||||||
if [ ! -z ${workers} ]; then
|
if [ ! -z ${workers} ]; then
|
||||||
unset DOTDROP_WORKERS
|
unset DOTDROP_WORKERS
|
||||||
@@ -129,31 +73,5 @@ fi
|
|||||||
# clear temp workdir
|
# clear temp workdir
|
||||||
rm -rf "${tmpworkdir}"
|
rm -rf "${tmpworkdir}"
|
||||||
|
|
||||||
## test the doc with remark
|
|
||||||
## https://github.com/remarkjs/remark-validate-links
|
|
||||||
set +e
|
|
||||||
which remark >/dev/null 2>&1
|
|
||||||
r="$?"
|
|
||||||
set -e
|
|
||||||
if [ "$r" != "0" ]; then
|
|
||||||
echo "[WARNING] install \"remark\" to test the doc"
|
|
||||||
else
|
|
||||||
remark -f -u validate-links docs/
|
|
||||||
remark -f -u validate-links *.md
|
|
||||||
fi
|
|
||||||
|
|
||||||
### test the doc with markdown-link-check
|
|
||||||
### https://github.com/tcort/markdown-link-check
|
|
||||||
#set +e
|
|
||||||
#which markdown-link-check >/dev/null 2>&1
|
|
||||||
#r="$?"
|
|
||||||
#set -e
|
|
||||||
#if [ "$r" != "0" ]; then
|
|
||||||
# echo "[WARNING] install \"markdown-link-check\" to test the doc"
|
|
||||||
#else
|
|
||||||
# for i in `find docs -iname '*.md'`; do markdown-link-check $i; done
|
|
||||||
# markdown-link-check README.md
|
|
||||||
#fi
|
|
||||||
|
|
||||||
## done
|
## done
|
||||||
echo "All test finished successfully"
|
echo "All test finished successfully"
|
||||||
|
|||||||
Reference in New Issue
Block a user