【发布时间】:2022-06-19 05:53:54
【问题描述】:
Composer 有时会提供或多或少有用/相关/有趣的“Info from https://repo.packagist.org: ...”。
有没有办法不显示此消息?
也许是一种通过自定义 shell 命令路由它并过滤掉某些字符串的方法?
【问题讨论】:
标签: shell composer-php
Composer 有时会提供或多或少有用/相关/有趣的“Info from https://repo.packagist.org: ...”。
有没有办法不显示此消息?
也许是一种通过自定义 shell 命令路由它并过滤掉某些字符串的方法?
【问题讨论】:
标签: shell composer-php
有没有办法不显示此消息?
简短的回答是-q、--quiet 命令行选项。它也抑制其他输出。退出状态被保留。
也许是一种通过自定义 shell 命令路由它并过滤掉某些字符串的方法?
你还没有共享哪个shell,但这当然是可能的。在您的系统上给定unbuffer(1) 和bash(1) 作为/bin/bash,您可以在PATH 的早期拥有一个名为composer 的可执行文件,而不是安装的composer(1) 在运行@987654329 时过滤掉该行@unbuffered.
由于这取决于您的 shell 配置,因此最好使用名为 install.sh 的文件来回答,该文件可以在之后获取:
# usage: . ./install.sh
utility_name=composer
utility_path_name="$(which "$utility_name")"
wrapper_path="$PWD"
if [ "$wrapper_path/$utility_name" = "$utility_path_name" ]; then
echo "$utility_name: already installed: $utility_path_name" >&2
return 1
fi
<< STUB tee "$utility_name"
#!/bin/bash
COMPOSER="$utility_path_name"
unbuffer "\$COMPOSER" "\$@" > >(sed -u '/^.*Info from https:\/\/repo\.packagist\.org:/d' )
STUB
chmod u+x -- "$utility_name"
PATH="$wrapper_path:$PATH"
which "$utility_name"
composer --version
要激活包装器,请获取此文件:
$ . ./install.sh
然后您可以使用此降噪过滤器运行每个 composer ... 命令。
实际的包装器相对较薄(在采购install.sh 后输出您的包装器以进行比较,因为路径不同):
$ cat composer
#!/bin/bash
COMPOSER="/home/user/.local/bin/composer"
unbuffer "$COMPOSER" "$@" > >(sed -u '/^.*Info from https:\/\/repo\.packagist\.org:/d' )
原则上,这与composer 本身无关,只是一个带有sed(1) 的输出过滤器并包装了一个命令行实用程序。
在 CI 中,您可能希望以不同的方式做事,例如隐藏所有输出,直到发生错误。 chronic(1) 可以做到这一点。
【讨论】: