jonpugh / ash
使用Consolidation Site Aliases管理网站的全球CLI。
Requires
- consolidation/robo: ^4.0
- consolidation/site-alias: ^4.0
- consolidation/site-process: ^5.2
README
一个全球CLI,用于列出站点并在其上运行命令。非常类似于全局drush site:alias
命令。
概述
此项目是一个全局CLI,旨在使用Consolidation的Site Aliases运行针对多个站点的命令。
这可能是全局Drush的替代品。
命令
site
site:exec [e] Run a command against a site (in the root directory.)
site:get [get] Show contents of a single site alias.
site:list [sl|ls] List available site aliases.
site:value Access a value from a single alias.
site-spec
site-spec:parse Parse a site specification.
别名语法
为了更简单地访问site:exec
命令,您可以使用别名语法
ash @alias command-to-execute
历史
此工具是从由consolidation/site-alias
团队创建的小工具的灰烬中构建的,该工具称为alias-tool。
它受到淘汰全局drush的需要的启发。
安装
Ash是一个设计为全球运行的CLI,但也可以在Composer项目中安装。以下是安装的3种选项
-
站点局部
composer require
composer require jonpugh/ash`
-
Composer全局require命令并添加到PATH
-
运行以下命令将
ash
安装到您的用户全局Composer目录composer global require jonpugh/ash
-
要使
ash
可用,请设置PATH变量export PATH="~/$COMPOSER_HOME/vendor/bin:$PATH"
将此放入您的
~/.bashrc
或类似文件。
注意
-
这将在全局
COMPOSER_HOME
目录中安装一个composer.json
文件。 -
bin脚本将安装在
$COMPOSER_HOME/vendor/bin
中。 -
您的
COMPOSER_HOME
可能不同。有关COMPOSER_HOME
的更多信息,请参阅composer global --help
命令。 -
来自
composer global --help
You can use this to install CLI utilities globally, all you need is to add the COMPOSER_HOME/vendor/bin dir to your PATH env var. COMPOSER_HOME is c:\Users<user>\AppData\Roaming\Composer on Windows and /home/<user>/.composer on unix systems. If your system uses freedesktop.org standards, then it will first check XDG_CONFIG_HOME or default to /home/<user>/.config/composer Note: This path may vary depending on customizations to bin-dir in composer.json or the environmental variable COMPOSER_BIN_DIR. Read more at https://getcomposer.org.cn/doc/03-cli.md#global ```
-
-
源代码安装。
对于开发,安装源代码,并根据需要设置符号链接以使
ash
全局可用。git clone git@github.com:jonpugh/ash.git cd ash composer install sudo ln -s $PWD/ash /usr/local/bin/ash
-
Phar安装。
即将推出。
设置
一旦ash
命令生效,您需要告诉它您的站点位置。您可以手动创建别名文件,或使用site:add
命令。
ash site:add
此命令使添加新的全局站点别名变得简单。
要使用,在您的Drupal站点目录中运行ash site:add
。(@todo: 允许从任何目录添加)
如果您的站点有文件./drush/sites/self.yml
,这些别名将包含在全局别名列表中。
配置
有关默认配置,请参阅ash.yml
# Copy this file to ~/.ash/ash.yml if overriding is needed. ash: alias_directories: - "${env.HOME}/.ash"
将别名文件放入alias_directories
中定义的目录之一。
请记住将文件命名为$APP.site.yml
而不是self.site.yml
有关如何创建别名文件的详细信息,请参阅Drush 站点别名文档
用法
假设您已将示例文件examples/operations.site.yml添加到$HOME/.ash/operations.site.yml
,您可以运行以下命令
列出所有别名
# List all aliases from global config (~/.ash/*) $ ash ls '@ash.operations.local': root: /home/jonpugh/Work/Operations/operations/web uri: 'https://operations.lndo.site' env: HOME: /home/jonpugh '@ash.operations.mars': root: /home/jonpugh/Work/Operations/operations/web uri: 'https://mars.lndo.site' env: HOME: /home/jonpugh
列出站点局部别名。
如果您从drupal代码库运行ash
,它将检测并加载drush/sites
文件夹中的所有别名。
# List all aliases from a specific site. $ cd path/to/myproject $ ash ls '@self.prod': host: sites.watch user: platform root: /var/platform/projects/siteswatch/prod uri: 'https://sites.watch' $ ash exec @self.prod drush status
这些别名也与drush兼容。
在站点上运行命令
主 ash site:exec
命令使用 SiteAlias
和 SiteProcess
,因此命令将自动通过 SSH 在远程服务器上运行。请参阅附加选项https://www.drush.org/12.x/site-aliases/#additional-site-alias-options
也可以使用 Docker-compose 别名。https://www.drush.org/12.x/site-aliases/#docker-compose-and-other-transports)
# Execute a command in the site's folder, on the site's server. $ ash exec @self.prod drush status Drupal version : 9.5.10 Site URI : http://default PHP binary : /usr/bin/php8.1 PHP config : /etc/php/8.1/cli/php.ini PHP OS : Linux PHP version : 8.1.20
如果需要选项,请使用 --
作为 ash
命令和目标命令之间的分隔符。
$ ash exec @ash.operations.live -- drush wd-tail --extended
Ash 别名是 drush 别名,因此这是一个等效命令
$ drush @ash.operations.live wd-tail --extended
@TODO
- 允许别名仅包含名称.环境。当前所有别名都带有
@ash
预置。 - 允许使用
ash @alias command
语法,而不是ash site:exec @alias command
。需要找出 drush 如何处理 argv 来设置当前别名。
贡献
有关提交拉取请求的详细过程,请参阅CONTRIBUTING.md。
版本
我们使用 SemVer 进行版本控制。有关可用版本,请参阅发布页面。
作者
- Jon Pugh
- Greg Anderson - 原始
alias-tool
脚本和命令文件。
还可以参阅参与此项目的贡献者列表。还要感谢所有直接或间接为站点别名做出贡献的drush 贡献者。
许可证
本项目采用 MIT 许可证 - 请参阅 LICENSE 文件以获取详细信息