alexskrypnyk/shellvar

用于处理shell变量的实用工具。

1.0.0 2024-04-29 01:29 UTC

This package is auto-updated.

Last update: 2024-08-26 01:17:49 UTC


README

Shellvar logo

用于处理shell变量的实用工具

GitHub Issues GitHub Pull Requests Test PHP codecov GitHub release (latest by date) LICENSE Renovate

Docker Pulls amd64

特性

  • 检查变量
    • 报告非 ${VAR} 格式的shell变量。
    • 修复非 ${VAR} 格式的shell变量。
  • 提取变量
    • 扫描包含shell脚本的文件或目录,并使用 高级插值支持 提取找到的变量以及注释和分配的值。
    • 过滤变量:排除局部变量,按前缀排除,从文件列表中排除。
    • 将输出格式化为 CSVMarkdown表格Markdown块(在模板中定义)。
    • 使用自定义类扩展过滤器和格式化。

安装

发布页面 下载最新版本的 shellvar 并在主机上运行

./shellvar [command] [options] path/to/script.sh

或作为Docker容器运行

docker run -v $(pwd):/app drevops/shellvar [command] [options] path/to/script.sh

使用 - 检查

  • 报告非 ${VAR} 格式的shell变量。
  • 修复非 ${VAR} 格式的shell变量。

检查文件或目录

./shellvar lint path/to/script.sh

./shellvar lint path/to/dir

./shellvar lint --extension=sh --extension=bash --extension=bats path/to/dir

示例

./shellvar lint tests/phpunit/Fixtures/unwrapped.sh

./shellvar lint tests/phpunit/Fixtures

./shellvar lint --extension=sh --extension=bash --extension=bats tests/phpunit/Fixtures

修复文件或目录

./shellvar lint --fix path/to/script.sh

./shellvar lint --fix path/to/dir

./shellvar lint --fix --extension=sh --extension=bash --extension=bats path/to/dir

示例

./shellvar lint --fix tests/phpunit/Fixtures/unwrapped.sh

./shellvar lint --fix tests/phpunit/Fixtures

./shellvar lint --fix --extension=sh --extension=bash --extension=bats tests/phpunit/Fixtures

使用 - 提取

默认情况下,变量名、描述(从注释中获取)及其值以 CSV 格式打印到标准输出。您还可以更改输出格式为 Markdown表格Markdown块

以下是一个shell脚本示例(请参阅在测试中使用的 扩展示例

# Assignment to scalar value.
VAR1=val1
# Assignment to another variable.
VAR2="${VAR1}"
# Parameter expansion.
VAR3=${val3:-abc}
# Parameter expansion with a default value using
# another variable $VAR3.
#
# Continuation of the multi-line comment.
VAR4=${val4:-$VAR3}

CSV(默认)

./shellvar extract path/to/script.sh
Name;"Default value";Description
VAR1;val1;"Assignment to scalar value."
VAR2;${VAR1};"Assignment to another variable."
VAR3;abc;"Parameter expansion."
VAR4;${VAR3};"Parameter expansion with a default value using another variable $VAR3.

Continuation of the multi-line comment."

Markdown表格

./shellvar extract --format=md-table path/to/script.sh
点击查看输出
| Name   | Default value | Description                                                                                                                      |
|--------|---------------|----------------------------------------------------------------------------------------------------------------------------------|
| `VAR1` | `val1`        | Assignment to scalar value.                                                                                                      |
| `VAR2` | `${VAR1}`     | Assignment to another variable.                                                                                                  |
| `VAR3` | `abc`         | Parameter expansion.                                                                                                             |
| `VAR4` | `${VAR3}`     | Parameter expansion with a default value using<br />another variable `$VAR3`.<br /><br />Continuation of the multi-line comment. |

如下所示

Markdown块

./shellvar extract --format=md-blocks path/to/script.sh
点击查看输出
### `VAR1`

Assignment to scalar value.

Default value: `val1`

### `VAR2`

Assignment to another variable.

Default value: `${VAR1}`

### `VAR3`

Parameter expansion.

Default value: `abc`

### `VAR4`

Parameter expansion with a default value using<br />another variable `$VAR3`.

Continuation of the multi-line comment.

Default value: `${VAR3}`

如下所示

高级:带有链接和自定义模板的Markdown块

./shellvar extract --format=md-blocks --md-link-vars --md-block-template-file=path/to/template.md path/to/script.sh
点击查看输出
### `VAR1`

Assignment to scalar value.

Default value: `val1`

Path: `1.sh`

Paths: `1.sh`

### `VAR2`

Assignment to another variable.

Default value: `${VAR1}`

Path: `1.sh`

Paths: `1.sh`

### `VAR3`

Parameter expansion.

Default value: `abc`

Path: `1.sh`

Paths: `1.sh`

### `VAR4`

Parameter expansion with a default value using<br />another
variable [`$VAR3`](#VAR3).

Continuation of the multi-line comment.

Default value: `${VAR3}`

Path: `1.sh`

Paths: `1.sh`

如下所示

选项

有不同的选项:提取、过滤和格式化。

“允许多个值”意味着您可以多次指定选项,如下所示: --exclude-prefix=VAR1 --exclude-prefix=VAR2 等。

提取

过滤

格式化

维护

composer install
composer lint
composer lint:fix
composer test
composer build

Docker发布

Shellvar作为 Docker镜像 发布,以下标签

  • XX.YY.ZZ 标签 - 当GitHub上发布发布标签时。
  • latest - 当GitHub上发布发布标签时。
  • canary - 每次向 main 分支推送时

使用 https://getscaffold.dev/ 项目模板创建存储库