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


Я получаю следующую ошибку при попытке запустить скрипт bash в крючках после установки/обновления Composer:

> 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

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

{
  "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) и расположенный в том же каталоге, что и composer.json

#!/bin/bash

mkdir -p _libraries
cp -r vendor/twbs/bootstrap/dist _libraries/bootstrap/
...
...
Author: grim, 2015-11-05

2 answers

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

bash post-install.sh

Кажется, это работает.

 8
Author: hek2mgl, 2017-05-23 11:47:11

Другим способом достижения единого определения задачи является ссылка на сценарии:

{
  "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",
      ...
    ]
  }
}
 7
Author: Wirone, 2017-02-01 09:35:11