Я пытаюсь автоматизировать создание класса php с помощью makefile
и perl
oneliner
.Как сделать цикл в perl для makefile
У меня есть этот файл document.txt
[ENTITY]
Document
MyDefaultBundle
number:string(200)
issueDate:datetime
expiryDate:datetime
file_path:string(200)
filename:string(200)
description:text
document_type:string(200)
В основном FIRSTLINE является classname
, второй является Bundlename
и третий является fields
Я использую это в гриме файле выполнить команду Symfony для создания классов
MYFILE = Entity/document.txt
READ_ENTITY=eval `perl -l -00pe 'y/\n\r[]/ /d; s/([A-Z]+) (\w+) (\w+) (.*)/$$1=$$3:$$2\nFIELDS="$$4"\n/g' $1`
mytest:
$(call READ_ENTITY,$(MYFILE)) && $(SYMFONY_COMMAND) --entity=$$ENTITY --fields="$$FIELDS"
Это нормально работает для одного объекта. (Я избежал $ с $$)
Сейчас мое состояние является то, что у меня есть несколько объектов в цикле
document.txt
[ENTITY]
Document
MyDefaultBundle
number:string(200)
issueDate:datetime
expiryDate:datetime
file_path:string(200)
filename:string(200)
description:text
document_type:string(200)
[ENTITY]
Document2
MyDefaultBundle
number:string(200)
issueDate:datetime
expiryDate:datetime
file_path:string(200)
filename:string(200)
description:text
document_type:string(200)
[ENTITY]
Document3
MyDefaultBundle
number:string(200)
issueDate:datetime
expiryDate:datetime
file_path:string(200)
filename:string(200)
description:text
document_type:string(200)
, поэтому я хочу, чтобы выполнить это заявление в цикле. Я не уверен, как это сделать внутри файла make.
в основном с eval
я АМА делает переменную оболочки ENTITY
И FIELDS
, а затем использовать это в командной строке
Любые идеи симфони ??
РЕДАКТИРОВАТЬ:
Для Perl командовать Document.txt показано выше, то есть вход
Выход Perl coomand является
ENTITY=MyDefaultBundle:Document
FIELDS="number:string(200) issueDate:datetime expiryDate:datetime file_path:string(200) filename:string(200) description:text document_type:string(200)"
, который в основном делает их в качестве переменной оболочки таким образом, что я могу вставить их с $ENTITY
Проблема в том, что у меня есть несколько [ENTITY], разделенных пробелом, тогда я не могу использовать это как la st с перезаписью ENTITY VARIABLE.
я хочу некоторые вещи, как
for [ENTITY] IN document.txt
EXECUTE $(call READ_ENTITY,$(MYFILE)) && $(SYMFONY_COMMAND) --entity=$$ENTITY --fields="$$FIELDS"
Так что в каждом цикле у меня есть разные ENTITY
и FIELDS
переменной
Непонятно, что такое входы и выходы. Если вы можете продемонстрировать пример ввода, то команда, которая генерирует выходные данные и выходные данные, поможет. –
Команда Perl модифицирует 'Entity/document.txt' на месте, тогда команда symfony сканирует ее и производит ... другой файл, это правильно? – Beta
@MaximYegorushkin Я добавил дополнительные сведения – user3147180