Допустим, я создаю веб-приложение с хаскелем как на стороне сервера, так и на стороне клиента. На этапе сборки я хочу скомпилировать код на стороне сервера с помощью ghc
и код на стороне клиента с некоторым транспилером haskell в js.
Инструменты транспилятора haskell предоставляют исполняемый файл, который мне нужно передать с .hs
файлами, и он будет скомпилирован в .js
файлов. Как мне указать в клике запускать внешние программы на этапе сборки? Я вижу, что поле UserHooks
buildHook
имеет тип возвращаемого значения IO()
, поэтому теоретически я, вероятно, могу использовать, например, библиотеку shelly для выполнения кода оболочки для запуска транспайлера, но я не знаю, является ли это самым чистым решением.