fabric
fabric copied to clipboard
[FEATURE REQUEST] Standalone CLI
I just got a first look at this and it looks like it'll be a lot easier for me to work with than AGS.
There is a major problem with this, though. It's only a module, it doesn't work as a standalone Python application. Even the CLI mentioned in the wiki requires invoking this as a module using python -m.
Now, this doesn't seem too big of a problem with most Linux distributions or package managers...
...until you start working with it on Nix or NixOS. Then this "only a module" approach is a major major headache, because by design Nix does not support simply sticking a library in globally and expecting it to work. Many Python modules can still work this way with Nix.
However, because this project uses GObject Introspection, you can't install the module globally and have it work, as a lot of environment variables GIS sets up are not going to be there. Nix documentation and pretty much every guide in the universe for Nix/NixOS would say to make a python module part of a Nix shell... but that's not really practical for a widget system like this where you're not going to be devving with it 99% of the time but having the module running like an application.
End result: Just installing the module and importing fabric results in it complaining about not finding the Gtk namespace because the environment it needs isn't there and won't be there the way it will be in other Linux environments. The only way I can see to get your package to work on NixOS involves a lot of work involving creating a package for your module (As it is not in nixpkgs.) and then create another package that depends on that first package to contain the configuration I'd want to use.
It's a lot of work that could be sidestepped by there simply being an executable Python script available in this package that Nix would be able to wrap properly. Can't wrap a module, can wrap an application.
I'll understand if you WONTFIX on this one since you're probably more interested in supporting Arch, but I imagine this might be a trivial chance if all the script really needs to do is import fabric and run the command line as if it was "python -m fabric," yes?