Простой способ ввести полный путь к рабочей директории в скрипте Composer - PullRequest
0 голосов
/ 02 ноября 2018

Я использую Composer для выполнения стороннего сценария командной строки, которому нужен путь в качестве аргумента:

{
    "scripts": {
        "i18n-extract": [
            "foo.bat init --path . --quiet",
            "foo.bat extras --path . --quiet"
        ]
    }
}

Из-за ряда ошибок в сторонних компонентах использование относительного пути, такого как ., не работает правильно, и я вынужден предоставить полный абсолютный путь с дублирующими концевыми косыми чертами:

C:\Projects\Project name\src\\

& hellip; который, закодированный для JSON, приводит к:

"foo.bat init --path \"C:\\Projects\\Project name\\src\\\\\" --quiet"

Но я не могу жестко закодировать пути, потому что сценарий предназначен для перераспределения. Есть ли разумный способ генерировать такую ​​команду динамически из текущей рабочей директории, которая не включает переключение моей логики на PHP? Обходной путь только для окон вполне приемлем.

1 Ответ

0 голосов
/ 06 ноября 2018

Рабочий каталог уже находится в переменной среды %CD% (сначала я его не заметил, поскольку он не отображается при вводе set без параметров). Итак, команда проста:

foo.bat init --path "%CD%\\" --quiet

Учет с особыми побегами Composer'а, с которыми мы сталкиваемся:

"i18n-extract": [
    "foo.bat init --path \"%CD%\\\\\" --quiet",
    "foo.bat extras --path \"%CD%\\\\\" --quiet"
]
...