摇动构建:从配置文件中读取文件路径列表

shake build: read filepath list from config file

我有一个 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 初学者

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

现在你在 file_list 中断言和解包 Maybe,所以如果它是 Nothing 你会遇到运行时崩溃,如果它是 Just 你会得到它没有 Just 包装器,所以可以简单地使用 words.