decker-edu / decker

A markdown based tool for slide deck creation.
GNU General Public License v3.0
60 stars 15 forks source link

Moving files across phyiscal devices fails #117

Open salbeira opened 5 months ago

salbeira commented 5 months ago

Haskell uses renameFile to move files from the "new" /tmp/ directory to the decker directory after operations such as decker crunch.

renameFile is allowed - and does - fail if it is done across "physical devices" (but needs to document this fact ... but I wonder where ...).

This completely fails in the case where your /tmp/ is in a tmpfs.

I believe I encountered a similar issue quite a while back and was able to resolve it by first doing a COPY from the temporary directory to the target and then removing the tmp file. Assinine, but works across phyiscal devices in haskell.

@monofon can you look into it?

flipreverse commented 4 months ago

@salbeira @monofon This issue also effects the ability to generate any extern input, such as graphviz plots or tex stuff. :(

Error when running Shake build system:
  at want, called at app/Decker.hs:93:3 in main:Decker
* Depends on: html
  at need, called at app/Decker.hs:53:3 in main:Decker
* Depends on: public/03-treiber-deck.html
* Raised the exception:
/tmp/decker-d5747564e-home-local-al-workspace-lehre-sst-praktikum-folien-decks/03-treiber-deck-code-a0dfa5e1-fd0ceda9a.dot: renameFile:renamePath:rename: unsupported operation (Invalid cross-device link)