getDatafilename devuelve un directorio inexistente
Pregunta
No puedo hacer que los archivos de datos se empaqueten en un Dist Cabal. El directorio que se produce con getDataFileName
No existe después de instalar el paquete.
Main.hs:
module Main (
main
) where
import Paths_mypackage
main = do file <- getDataFileName "mydata.txt"
putStrLn file
print =<< readFile file
mypackage.cabal (generado por leksah después de navegar para el archivo):
data-files: /Users/peter/Documents/haskell/mypackage/data/mydata.txt
mydata-dir: ""
Producción:
mypackage: /Users/peter/.cabal/share/mypackage-0.0.1/mydata.txt: openFile: does not exist (No such file or directory)
/Users/peter/.cabal/share/mypackage-0.0.1/mydata.txt
Solución
Las líneas en el archivo .cabal deben ser
data-files: mydata.txt
data-dir: data
Entonces Cabal instalará el archivo de datos en la ubicación apropiada, /Users/peter/.cabal/share/mypackage-0.0.1/mydata.txt
En su caso, y el programa funcionará.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow