I have a Python-package that calls Inkscape as part of a conversion process. I have it installed, but through Flatpak. This means that calling inkscape does not work in the terminal, but rather flatpak run org.inkscape.Inkscape. I need the package to be able to call it as inkscape.

What is the best way to go about this?

    • cyberwolfie@lemmy.mlOP
      link
      fedilink
      arrow-up
      7
      ·
      1 year ago

      Yeah, I tried this, and it works from my session, but I still got the same error from trying to run the program. I figured it was because it is called outside the bash session so the run commands have not been run, but is that perhaps not true?

      • ForynGilnith@lemmy.world
        link
        fedilink
        English
        arrow-up
        25
        ·
        edit-2
        1 year ago

        If that’s the case, it’s a bit of an ugly hack but you could make a wrapper script placed in /usr/local/bin/inkscape like this:

        #!/bin/bash
        
        flatpack run org.inkscape.Inkscape ${*}
        

        (the ${*} will pass along all the arguments that the wrapper script was called with)

  • adONis@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    Why don’t you check for both and use the one that’s available, otherwise print an error. Additionally you could read an env INKSCAPE_BIN and also include that in your checks.

    So one could for example do INKSCAPE_BIN='distrobox enter arch -- inkscape' python main.py

    • cyberwolfie@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      It is not my package, but I could of course go ahead and change the source code directly to handle this. But I’d prefer a solution that would persist through updates.

    • OsrsNeedsF2P@lemmy.ml
      link
      fedilink
      arrow-up
      11
      arrow-down
      1
      ·
      1 year ago

      Yup, pack it up folks. We spent years working to solve containerized applications with a granular permission system, but we can’t figure out how to make an executable run a command. It was a good run, but it’s over now.