Gooey: Turn command line programs into GUI applications
github.com
github.com
Yeoog; Turn GUI programs into command-line
However, it is not for any command line program. It works only for python programs that use argument parser. Though, one can write a python argument parser around a cli to make it work.
http://anonscm.debian.org/cgit/bash-completion/bash-completi...
The gui could have labels with the command options, and upon hitting enter they could close and send the command back to the command line, so you're learning the commands as you go.
Once to create a TkInter GUI for an internal command line app, and once to wrap sg3_utils for use in Python scripts.
In general, I think it could "mostly work" a good portion of the time, but it'd be pretty difficult to get working 100% of the time without a lot of tweaking to the parser.
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_...
This is actually how Docopt happened (Vladimir Keleshev mentioned it in the PyCon UK 2012 talk).
The description file should help automatic GUI creating or shell completion.
I agree that this might lead to something which is not in Unix spirit but already shell completion provide such information and this shows the need for such specs.
I am using py2exe to convert my script into an executable. but getting following error: File "commandui.py", line 1, in <module> File "gooey\init_.pyc", line 1, in <module> File "gooey\gooey_decorator.pyc", line 16, in <module> File "gooey\gui\base_window.pyc", line 16, in <module> File "gooey\gui\header.pyc", line 10, in <module> File "gooey\i18n.pyc", line 37, in <module> File "gooey\i18n.pyc", line 24, in get_path
IOError: Could not find english language file
Encoder (-e). OpenCV FOURCC Type. {Empty text box}.
Just take all possible options and ... shove them right in the user's face. Is that user friendly? Whom is it helping, who doesn't want a CLI but also knows how the CLI program works, but also can't script it?
The picture in readme is one running a fake program I was using for testing. If you'll notice, none of the options particularly make sense -- heck, the output of the program (shown toward the bottom of the readme) is "printing message at: {hash}"
If you take another look at the readme, you'll see that it supports `choice` style params. Which reads in the options available and presents them to the user via a dropdown.
So, friendly options are a'plenty! :)
That's why I thought it was wrapping a real Linux command line program. ;)
If you're wrapping a CLI, there's not much more you can do than take all the CLI options and shove them into a 1990's style window peppered with options. But it's not helping anything - anyone who knows what the options are and do, and who is not put-off by heaps of options, is likely fine with the CLI version. Anyone who is offput by heaps of options isn't going to want to face them in CLI or GUI versions.
And anyone who doesn't like facing them, but who can deal with it, will wrap the CLI in a shell script that specifies the options they use most often and hides the rest.
The whole thing is missing how and why CLI and GUI programs are different. Chrome isn't a wrapper for WGET, Finder and Explorer are not wrappers for ls/mv/cd, and PhotoShop is not a wrapper screen full of toggle and dropdown options around ImageMagick.
You need to write a shell script that runs commands to display the gui, and then execute the command.
This project attempted to make argument parsing and the help string synonymous. I'm not sure if it is being actively maintained.
I tried to write a docopt to click converter but I had to give up.
I'm not totally sure how I could get that level of detail without forcing some kind of markup within the help messages. I'm totally open to ideas (and pull requests) though! :)
and lose the ability to pipe, check exit status, run from cron, run through ssh or a different machine, call from other scripts...
The last couple of months as I know about more and more the command line, and can configure my shell and tools the way I like, I feel I'm more productive with the terminal than any other GUI application.
If you're building utilities for yourself, other programmers, or something which produces a result that you want capture and pipe over to another console application (e.g. nix philosophy utils), Gooey probably isn't the tool for you.
It's still helpful though for other scenarios.
I've written more than a few GUIs that added up to wrappers around a command-line app, this would have been very handy then.
My main project is a mobile app that has a bunch of calculators dedicated to specific tasks. Some of this tasks are less-than-trivial, but most of them you'd not look a special tool for (for example VAT calculator). It has 950k downloads, most of its users are very happy with it. But every single time there's a review in the online press I get "this is for morons" comments. Every. Single. Time (unless it's a small blog that doesn't have commenters). When I saw Gooey, I had two thoughts: "Nice" and "Someone will surely try to make a point that this is stupid".
I'm surprised you have settled on using a thing you dislike which doesn't work for you, when there are likely dozens or hundreds of wrappers, GUIs, APIs, programs and apps for image bulk editing to choose from.
_Settling_ on a solution indicates that a task is performed more often. In such a case, CLI is perfectly fine, because you learn how to use it while you do it and this knowledge sticks after several uses. I haven't used IrfanView, but I doubt it can compete with all the goodness of the command line.
Users assemble their workflows in a sharable, repeatable and somewhat easy-to-use way using the web-ified versions of their command-line tools. Galaxy takes care of hooking everything up (data, scripts, intermediate results, etc) and provides a UI for watching/controlling the resulting job(s) on the desired HPC cluster.
The goal for this in biology is to address the explosion in data modern biologists have to deal with nowadays - it's often completely overwhelming. Things like Galaxy increase both the accessibility of these command-line tools and also the large HPC compute resources traditionally dominated by users from the physical sciences.
Although it was a few years ago, it was rewarding seeing non-programmer users get onto HPC - importantly, while retaining control of their workflow - after they've struggled for so long on their local hardware. When you see jobs that took weeks or months run in hours or days, it's almost like giving a desert explorer some water.
Systems like Galaxy do require dedicated systems people to support it and make it properly sing though. Gooey could nicely accelerate the web-ification part of adding new software.