jonpugh/ash

使用Consolidation Site Aliases管理网站的全球CLI。

1.0.2 2023-09-14 16:29 UTC

This package is auto-updated.

Last update: 2024-08-30 13:23:20 UTC


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种选项

  1. 站点局部composer require

     composer require jonpugh/ash`
    
  2. Composer全局require命令并添加到PATH

    1. 运行以下命令将ash安装到您的用户全局Composer目录

       composer global require jonpugh/ash
      
    2. 要使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
      ```
      
      
  3. 源代码安装。

    对于开发,安装源代码,并根据需要设置符号链接以使ash全局可用。

    git clone git@github.com:jonpugh/ash.git
    cd ash
    composer install
    sudo ln -s $PWD/ash /usr/local/bin/ash
    
  4. 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 命令使用 SiteAliasSiteProcess,因此命令将自动通过 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 文件以获取详细信息