Eu quero executar o seguinte comando:
dune exec -- ocaml-print-intf file.ml
E redirecionar sua saída parafile.mli
O problema é que eu não consigo escrever
dune exec -- ocaml-print-intf file.ml > file.mli
Porque file.mli
é criado, então dune exec -- ocaml-print-intf file.ml
é executado e sua saída é redirecionada para file.mli
. Por que isso é um problema? Porque deveria gerar a assinatura de, file.ml
mas a primeira coisa que verifica é se já existe um arquivo de assinatura ( file.mli
no nosso caso) e se existe, ele o gera.
Exemplo:
❯ dune exec -- ocaml-print-intf src/file.ml
val a : int
val b : string
❯ dune exec -- ocaml-print-intf src/file.ml > src/file.mli
❯ cat src/file.mli
❯ dune exec -- ocaml-print-intf src/file.ml
Eu encontrei uma solução com esponja
❯ dune exec -- ocaml-print-intf src/file.ml | sponge src/file.mli
❯ cat src/file.mli
val a : int
val b : string
Mas eu queria saber se havia outra solução que não necessitasse instalar um software externo.