Composer не удалось запустить сценарий после установки

Я получаю следующую ошибку при попытке запустить скрипт bash в Composer post install / update hooks:

> post-install.sh
sh: 1: post-install.sh: not found
Script post-install.sh handling the post-install-cmd event returned with an error



  [RuntimeException]
  Error Output: sh: 1: post-install.sh: not found

оригинальный композитор.в JSON

работает, но просто раздражает обновлять команды post install / update для запуска в двух местах.

{
  "require": {
    "twbs/bootstrap": "3.3.5"
    ...
    ...
  },
  "scripts": {
    "post-install-cmd": [
      "mkdir -p _libraries",
      "cp -r vendor/twbs/bootstrap/dist _libraries/bootstrap/",
      ...
      ...
    ],
    "post-update-cmd": [
      "mkdir -p _libraries",
      "cp -r vendor/twbs/bootstrap/dist _libraries/bootstrap/",
      ...
      ...
    ]
  }
}

по словам композитор документация:

сценарий, в терминах композитора, может быть либо обратным вызовом PHP (определенным как статический метод) или любая исполняемая команда командной строки.

мой composer.json должен уметь работать так:

хотел композитор.в JSON

{
  "require": {
    "twbs/bootstrap": "3.3.5"
    ...
    ...
  },
  "scripts": {
    "post-install-cmd": [
      "post-install.sh"
    ],
    "post-update-cmd": [
      "post-install.sh"
    ]
  }
}

post-install.sh

исполняемый с каждого (0775) и находится в том же каталоге, что и композитор.в JSON

#!/bin/bash

mkdir -p _libraries
cp -r vendor/twbs/bootstrap/dist _libraries/bootstrap/
...
...

2 ответов


на комментарии Я предложил использовать

bash post-install.sh

Это, кажется, работает.


другой способ достижения определения одной задачи -ссылки на Скрипты:

{
  "require": {
    "twbs/bootstrap": "3.3.5"
    ...
  },
  "scripts": {
    "your-cmd": [
      "mkdir -p _libraries",
      "cp -r vendor/twbs/bootstrap/dist _libraries/bootstrap/",
      ...
    ],
    "post-install-cmd": [
      "@your-cmd",
      ...
    ],
    "post-update-cmd": [
      "@your-cmd",
      ...
    ]
  }
}