2015-08-12 4 views
0

Я использую Make для получения некоторых данных из базы данных MySQL, заполнения отчета и отправки по электронной почте с помощью cron. При обработке файла groff я столкнулся с проблемой разрешений.GNU Make: разрешения на создание файлов

Внести:

get: $(DATA) 

$(DATA): 
     bash $(GET) $(SQL) > [email protected] 

format: $(CONTENT) 

$(CONTENT): $(DATA) 
     bash $(FORMAT) $(DATA) > [email protected] 

$(TROFF): $(CONTENT) 
     cat $(TEMPLATE) $< > [email protected] 
     chmod a+rw [email protected] 

$(PS): $(TROFF) 
     $(SED) -i '$$ a .TE' $< 
     $(TROFF) -ms -t -Tps $< > [email protected] 
     chmod a+rw [email protected] 

report: $(REPORT) 

$(REPORT): $(PS) 
     $(PS2PDF) $< >[email protected] 
     chmod a+rw [email protected] 

Как вы можете видеть, я экспериментировал с разрешениями в пределах Makefile. Вот ошибки, которые я получаю при запуске сделать:

 
/home/automation/scripts/nancy_list/reports/2015-08-11.roff -ms -t -Tps /home/automation/scripts/nancy_list/reports/2015-08-11.roff > /home/auto 
/bin/sh: 1: /home/automation/scripts/nancy_list/reports/2015-08-11.roff: Permission denied 
make: *** [/home/automation/scripts/nancy_list/reports/2015-08-11.ps] Error 126 

Так успешно генерирует ROFF, но не может его обработать - приписка приходит как пустой файл. Я сделал аналогичные проекты с Make before - есть ли что-то новое в отношении разрешений?

ответ

0

TROFF ошибочно настроен не на/usr/bin/troff, а на ваш сгенерированный файл troff.

Вы пытаетесь выполнить сгенерированный файл.

+0

Я всерьез не могу поверить, что не понял этого. Мне нужно порвать. Спасибо, что поймали это! У меня был исполняемый набор $ (GROFF), а файл - $ (TROFF). Мне нужно переоценить мои соглашения об именах. – Bubnoff