2012-09-04 121 views
0

我想解析幾個json文件,獲取它們的內容,預先添加/附加一些文本並將新字符串保存到另一個文件中。目前我有這其中單個文件的工作原理:從我瞭解的變量只能設置之外的規則如何將我去這樣做的文件列表Makefile處理幾個文件

#set variables for shared libs 
SHAREDFILE=$(SERVERPATH)/xx/mod/supervisor/cfg/prod/config.json 
JSONCONF = `cat "$(SHAREDFILE)"` 

share: 
    @echo "Sharing node-client code in ${PROJECT}.- ENV $(ENV)..." 
    @echo "parseConfig($(JSONCONF));" > $(CLIENTPATH)/public/js/shared/config.json 

由於?

更新:要複製的文件可以位於不同的目錄中,但應全部複製到同一目標目錄。

+0

如果您給出多個示例,這將有所幫助。你是指在$(SERVERPATH)/ xx/mod/supervisor/cfg/prod /中找到的文件列表('config.json','some.json','other.json')修改並保存在'$(CLIENTPATH)/ public/js/shared /'中? – Beta

+0

是的@Beta,除了不是所有的文件都在同一個源目錄中,但它們都在同一個目標目錄中結束 – Sofia

回答

2

根據有關文件的列表猜測:

SHAREDFILES = foo.json bar.json baz.json 

TARGETS = $(addprefix $(CLIENTPATH)/public/js/shared/, $(SHAREDFILES)) 

share: $(TARGETS) 

$(TARGETS) : $(CLIENTPATH)/public/js/shared/%.json : $(SERVERPATH)/xx/mod/supervisor/cfg/prod/%.json 
    @echo "Sharing node-client code in ${PROJECT}.- ENV $(ENV)..." 
    @echo "parseConfig(`cat $<`);" > [email protected] 

編輯:
如果源文件在幾個目錄,但目標都去到同一個目錄...有幾種方法來做到這一點。這可能是最好的:

SHAREDFILES = some/path/foo.json another/path/bar.json yet/another/path/baz.json 

TARGETDIR = $(CLIENTPATH)/public/js/shared 
TARGETS = $(addprefix $(TARGETDIR)/, $(notdir $(SHAREDFILES))) 

vpath %.json $(dir $(SHAREDFILES)) 

share: $(TARGETS) 

$(TARGETS) : $(TARGETDIR)/%.json : %.json 
    @echo "Sharing node-client code in ${PROJECT}.- ENV $(ENV)..." 
    @echo "parseConfig(`cat $<`);" > [email protected] 
+0

當文件位於不同的目錄中時怎麼樣?例如,我有一個SHAREDFILES文件的絕對路徑列表,它是如何完成的? – Sofia

相關問題