Size: a a a

2021 January 03

MK

Maxim Koltsov in Haskell
GNU/Vsevolod
CPP — это?
Расширение такое, сишный препроцессор
источник

MK

Maxim Koltsov in Haskell
В мануале можно посмотреть
источник

G

GNU/Vsevolod in Haskell
Спасибо
источник

к

кана in Haskell
GNU/Vsevolod
Можно ли получить файловый путь к текущему модулю?
а для чего? Интересен кейс
источник

G

GNU/Vsevolod in Haskell
кана
а для чего? Интересен кейс
.
├── foo
│   ├── data.csv
│   └── Main.hs
├── bar
│   ├── data.csv
│   └── Main.hs
├── foo.cabal
├── dist-newstyle
└── Utils.hs
В кабал-файле блоки с executable foo / bar, нужно получить путь к data.csv, запуская через cabal run foo, без аргумента foo/data.csv
источник

к

кана in Haskell
окей, так и думал, это решается лучше и правильнее другим способом
источник

DB

Danil Berestov in Haskell
блин, че-то прикол. А cabal, как stack, умеет при сборке глобально устанавливать бинарь?
источник

IK

Ilya Kos in Haskell
Нет вроде
источник

DB

Danil Berestov in Haskell
А не при сборке, а вообще?)
источник

к

кана in Haskell
GNU/Vsevolod
.
├── foo
│   ├── data.csv
│   └── Main.hs
├── bar
│   ├── data.csv
│   └── Main.hs
├── foo.cabal
├── dist-newstyle
└── Utils.hs
В кабал-файле блоки с executable foo / bar, нужно получить путь к data.csv, запуская через cabal run foo, без аргумента foo/data.csv
в cabal файле добавляешь
data-files: foo/data.csv, bar/data.csv

потом в коде

import Paths_projectname

main = do
 a <- getDataFileName "foo/data.csv"
 -- a - нужный путь
источник

к

кана in Haskell
дело в том что сорцы это же просто сорцы, соберешь проект, возьмешь бинарь, а сорцы потеряешь
источник

к

кана in Haskell
и data.csv эти тоже
источник

G

GNU/Vsevolod in Haskell
кана
и data.csv эти тоже
Разумеется, но здесь это неважно
источник

к

кана in Haskell
если не важно, тогда можно вообще забить на путь
источник

к

кана in Haskell
readFile "data.csv"
источник

к

кана in Haskell
там и так относительный путь
источник

G

GNU/Vsevolod in Haskell
кана
readFile "data.csv"
Тогда это будет "$(pwd)/data.csv", а я нахожусь на уровень выше
источник

к

кана in Haskell
ага, вот в чем дело, хочется иметь одинаковый код для foo/bar?
источник

G

GNU/Vsevolod in Haskell
кана
в cabal файле добавляешь
data-files: foo/data.csv, bar/data.csv

потом в коде

import Paths_projectname

main = do
 a <- getDataFileName "foo/data.csv"
 -- a - нужный путь
data-files полностью подходит, спасибо
источник

G

GNU/Vsevolod in Haskell
Он и в глоб умеет
источник