shake build:从配置文件读取文件路径列表

问题描述 投票:0回答:1

我有一个config.cfg文件,其中变量file_list是文件的相对路径列表

file_list = file1 dir1/file2 ../dir2/file3 

如何读取此变量以获得file_list::[FilePath]?尝试遵循Development.Shake.Config API Doc,但未成功。我需要一些东西来实现这一目标


file_list <- getConfig "file_list"
let fl = ??? file_list
need fl

ps。我是Haskell初学者

haskell shake-build-system
1个回答
0
投票

file_list的类型为Maybe String,并且fl的类型必须为[FilePath],因此问题就变成了如何编写在两者之间转换的函数。一种选择是:

let fl = words (fromMaybe "" file_list)

fromMaybe功能将Nothing替换为""-因此您现在有了Stringwords函数在空格处分割字符串,以产生[String]。在Haskell中,FilePathString的同义词,所以都可以解决。

如果相反,如果您想丢失密钥,请执行以下操作:

Just file_list <- getConfig "file_list"
let fl = words file_list
need fl

[现在,您要在Maybe中声明并展开file_list,因此,如果是Nothing,则会发生运行时崩溃,如果是Just,则会在没有Just包装器的情况下崩溃,因此可以简单地使用words

© www.soinside.com 2019 - 2024. All rights reserved.