Запуск Gatsby Build с помощью сценария оболочки - PullRequest
0 голосов
/ 04 октября 2018

Итак, для некоторого контекста я создал сайт, используя gatsby, который извлекает данные из API Wordpress.Я понял, что могу запустить ловушку в WordPress после сохранения сообщения, добавив его в мой файл functions.ph p.

add_action( 'save_post', 'fireFunctionOnSave' );
  function fireFunctionOnSave($post_id)
{
  if(wp_is_post_revision( $post_id) || wp_is_post_autosave( $post_id )) 
{
  return;
}
$old_path = getcwd();
chdir('/Applications/MAMP/htdocs/elliot-wp-gatsby/wp- 
content/themes/twentyseventeen/');
$output = shell_exec('./build.sh');
chdir($old_path);

$myfile = fopen("/Applications/MAMP/htdocs/elliot-wp-gatsby/wp- 
content/themes/twentyseventeen/output.txt", "w") or die("Unable to open 
file!");
fwrite($myfile, $output);
fclose($myfile);
}

, так что он может открываться и запускатьсямой сценарий оболочки, но на самом деле он не запускает сборку gatsby у кого-нибудь есть идеи?Это мой сценарий оболочки.

#!/bin/bash
cd /Users/elliotm/Dev-local/Projects/gatsby-wp
npm run build
echo "site built/deployed"

Спасибо

1 Ответ

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

Я не уверен, что shell_exec хорошо работает со скриптами bash и изменением каталогов.Пожалуйста, попробуйте: exec('cd /Users/elliotm/Dev-local/Projects/gatsby-wp && npm run build').

&& заставит исполнителя выполнить только вторую часть, если первая успешна.

...