摇动构建:从配置文件中读取文件路径列表
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
替换为 ""
- 因此您现在有一个 String
。 words
函数在空格处拆分字符串,生成 [String]
。在 Haskell 中,FilePath
是 String
的同义词,因此一切正常。
如果你想在密钥丢失时出错,你可以这样做:
Just file_list <- getConfig "file_list"
let fl = words file_list
need fl
现在你在 file_list
中断言和解包 Maybe
,所以如果它是 Nothing
你会遇到运行时崩溃,如果它是 Just
你会得到它没有 Just
包装器,所以可以简单地使用 words
.
我有一个 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
替换为 ""
- 因此您现在有一个 String
。 words
函数在空格处拆分字符串,生成 [String]
。在 Haskell 中,FilePath
是 String
的同义词,因此一切正常。
如果你想在密钥丢失时出错,你可以这样做:
Just file_list <- getConfig "file_list"
let fl = words file_list
need fl
现在你在 file_list
中断言和解包 Maybe
,所以如果它是 Nothing
你会遇到运行时崩溃,如果它是 Just
你会得到它没有 Just
包装器,所以可以简单地使用 words
.