jovanbulck / jsh

A basic UNIX shell implementation in C
GNU General Public License v3.0
30 stars 10 forks source link

Create a dialog-based installer #55

Closed GijsTimmers closed 9 years ago

GijsTimmers commented 9 years ago

Advanced users know how to use a Makefile, rookies don't. We should create an executable that installs jsh. The executable should use dialog for ease of use. You can find some images of what's possible with dialog right here.

Our installer should do the following:

Alternative: we can also use zenity. Not my weapon of choice, but we should consider it.

jovanbulck commented 9 years ago

Nice idea indeed, would of course require ncurses as a dependency before using the graphic installer, which is no issue if well documented. I wouldn't recommend zenity neither, especially for this purpose.

Some simple proof-of-concept to start with wouldn't be too hard, I guess.

jovanbulck commented 9 years ago

working on it, see this file

jovanbulck commented 9 years ago

Usable proof-of-concept is now online at https://github.com/jovanbulck/jo-shell/blob/installer/installer.sh. Basic support for choosing install directories, creating and editing configuration files, making and chsh should work. The option dialogs in the beginning are just dummy dialogs for now, but I'll look into it. Note you can also navigate forward and backward between them :-)

The script should even detect correct directory paths and use sudo iff no write rights to directory

Shoot here if you can think of some more compile-time flags by the way. Feel free to change the look and feel of the dialogs a bit and open a pull request. It's basic sh shell code (I refreshed my sh skills a bit :p) Look into the shell script and/or man dialog if interested

Check it out and let me know if it works on your installation

Oh btw: run in old scool Linux tty for best results :p

jovanbulck commented 9 years ago

I'll close this one as the installer is stable now and released since jsh 1.2.0 :-)

I wrote the installer mainly for fun and for refreshing my sh shell programming skills, so I think I wont be implementing any other installer-related feature requests soon. Of course someone can pick up if he wants. It's plain sh so shouldn't be too hard...

If someone feels like implementing or documenting the optional not-yet-implemented ideas repeated below, give it a go! (claim this re-opened issue or create and claim a new one as you like):