Je souhaite inclure un fichier exécutable dans la section cabal data-files
pour l'exécuter en tant que sous-processus dans mon programme Haskell.Cabal: fichiers de données exécutables
Le fichier est là, getDataFileName
fonctionne pour cela, mais il lui manque le bit exécutable et donc essayer de l'exécuter avec System.Process.createProcess
échoue avec permission denied
.
Existe-t-il un moyen pour que cabal conserve l'autorisation d'exécution du fichier? Y a-t-il une autre façon propre de résoudre cela?
Vous devrez peut-être le résoudre avec un fichier 'Setup.hs' personnalisé et un hook post-installation. Bien que dans ce cas, je vais probablement juste modifier votre code pour définir le bit exécutable avant d'appeler 'createProcess', car les fichiers' Setup.hs' personnalisés peuvent être un PITA –
@MichaelSnoyman: Mais je pense que mon code ne serait pas nécessairement avoir les permissions pour définir le bit exécutable, s'il est installé dans les répertoires système et exécuté par un utilisateur – yairchu
Vous avez raison. Dans ce cas, vous devrez peut-être utiliser l'option Setup.hs ou recourir à des astuces comme copier le fichier dans un emplacement temporaire, puis définir le bit exécutable. –