Node.js аргументы появления, вызывающие сбой git update-index - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть простая функция для запуска git update-index.

exports.gitUpdateIndex = (path, pattern) => {
  return new Promise((resolve, reject) => {
    const error = [];
    const opt = {
      cwd: path
    };
    const process = spawn("git", ["update-index", "--chmod=+x", pattern], opt);
    process.on("close", () => {
      if (error.length > 0) {
        reject(error);
      }
      resolve();
    });
    process.stderr.on("data", data => error.push(data.toString().trim()));
  });
};

И я пытаюсь назвать это как -

await gitUpdateIndex(dirPath, "./*.sh");

Но это выдает ошибку вроде -

[
  "Ignoring path *.sh\nfatal: git update-index: cannot chmod +x '*.sh'"
]

РЕДАКТИРОВАТЬ:

Похоже, передача абсолютного пути к функции исправляет его вместо unix шаблон глобуса.

await gitUpdateIndex(dirPath, "C:\\test\\hello.sh");

1 Ответ

1 голос
/ 01 апреля 2020

Вы должны определить каждый аргумент как отдельный элемент массива:

spawn("git", ['update-index', '--chmod=+x', pattern], opt)

В настоящее время вы делаете эквивалент

git 'update-index --chmod=+x ./*.sh'

(обратите внимание на кавычки)

...