cpsit/setup-helper

帮助设置项目包。这是一个composer插件。它会在更新或安装命令后执行预定义的任务。

安装数: 2,212

依赖项: 0

建议者: 0

安全性: 0

星标: 1

关注者: 8

分支: 1

公开问题: 3

类型:composer-plugin

2.0.0 2021-06-10 22:30 UTC

README

Build Status Quality Gate Status

设置助手

帮助基于配置和模板设置项目包。

这是一个composer插件。它在updateinstall命令后执行预定义的任务。

用法

composer require cpsit/setup-helper

配置

setup-helper键添加到composer.json文件的extra部分。**注意**:路径必须是相对于您的composer根目录或绝对路径。

复制文件或文件夹

{
  "extra": {
    "setup-helper": [
      {
        "copy": {
          "path/to/file/or/folder": "path/to/target",
          "other/file": "other/target"
        }
      }
    ]
  }
}

取消链接文件或文件夹

{
  "extra": {
    "setup-helper": [
      {
        "unlink": [
          "path/to/file/or/folder",
          "other file"
        ]
      }
    ]
  }
}
  • 没有**确认请求**。任何现有的文件或文件夹都将被删除!

移动文件或文件夹

{
  "extra": {
    "setup-helper": [
      {
        "move": {
          "path/to/old/file/or/folder": "path/to/new/folder",
          "other/file": "new/path"
        }
      }
    ]
  }
}

**注意**:移动不会重命名文件或文件夹。如果需要,请将其与重命名任务结合使用。

重命名文件或文件夹

{
  "extra": {
    "setup-helper": [
      {
        "rename": {
          "path/to/old/file/or/folder": "newName",
          "other/file": "otherName"
        }
      }
    ]
  }
}

源路径相对于当前工作目录。这应该是composer根目录,如果通过composer插件API调用安装器,则预期如此。

创建目录

{
  "extra": {
    "setup-helper": [
      {
        "makeDirectory": [
          "path/to/new/folder"
        ]
      }
    ]
  }
}

目录路径相对于当前工作目录。这应该是composer根目录,如果通过composer插件API调用安装器,则预期如此。任何缺少的目录都将递归创建。

从源到目标的符号链接

{
  "extra": {
    "setup-helper": [
      {
        "symlink": {
          "path/to/source/file": "target",
          "file": "even/deeper/path/to/target"
        }
      }
    ]
  }
}

源路径相对于当前工作目录。这应该是composer根目录,如果通过composer插件API调用安装器,则预期如此。如果源或目标存在,则不会创建符号链接。

替换

  • 用另一个字符串替换字符串
{
  "extra": {
    "setup-helper": [
      {
        "replace": [
          {
            "path": "path/to/file",
            "search": "string-to-replace", 
            "replace": "replacement string"
           }           
        ]
      }
    ]
  }
}
  • 用作为问题的答案的字符串(交互式)替换字符串
{
  "extra": {
    "setup-helper": [
      {
        "replace": [
           {
             "path": "path/to/file",
             "search": "string-or-pattern-to-replace", 
             "ask": "Question to ask for (Answer replaces pattern)"
           }           
        ]
      }
    ]
  }
}

path键遵循Ant-like globbing。

语法

  • ?匹配任何字符
  • *匹配零个或多个字符,除了/
  • /**/匹配零个或多个目录名
  • [abc]匹配单个字符abc
  • [a-c]匹配单个字符abc
  • [^abc]匹配除了abc之外的任何字符
  • [^a-c]匹配除了abc之外的任何字符
  • {ab,cd}匹配abcd

例如,"path": /path/to/dir/*.css将选择该目录中所有以.css结尾的文件。

有关详细信息,请参阅glob库的文档。

注意事项

目前我们依赖于webmozart/glob的分支cpsit/glob,因为原始库不允许使用最新的PHP版本。