Я хочу включить исполняемый файл в раздел cabal data-files
, чтобы выполнить его как подпроцесс в моей программе Haskell.Каббал: исполняемые файлы данных
Файл там, getDataFileName
работает для него, но ему не хватает исполняемого бита, и поэтому попытка его запуска с System.Process.createProcess
сбой permission denied
.
Есть ли способ для кэша сохранить разрешение на выполнение файла? Есть ли еще один чистый способ решить эту проблему?
Возможно, вам придется решить проблему с помощью настраиваемого файла 'Setup.hs' и крюка после установки. Хотя в этом случае я, вероятно, просто изменил бы ваш код, чтобы установить исполняемый бит, прежде чем вызывать 'createProcess', так как пользовательские файлы' Setup.hs' могут быть PITA –
@MichaelSnoyman: Но я думаю, что мой код не обязательно имеют разрешения на установку исполняемого бита, если он установлен в системных каталогах и выполнен пользователем – yairchu
Вы правы. В этом случае вам может потребоваться использовать параметр Setup.hs или прибегнуть к уродливым трюкам, таким как копирование файла во временное место, а затем установка исполняемого бита. –