What does `Flin' stand for?
Flin means `Flin's a Learners Interface to 'Nix Systems'.
What is `Flin'?
Flin is a Un*x/ncurses menu interface. I originally wrote
it when I tried to make a shell script to add some security to my
guest account. I found that shell scripts are completely impossible to
write in a decent way and just plain ugly to look at. So I had my hand
at writing my own. Besides, I wanted to try out my gnu-ELF build
environment on something other than one module programs.
How do I write menus?
This is a short primer, please see the file Manual for further details.
Flin menus are very simple to write and read. They are laid out in a
very logical way much like the menus to `fvwm' (1.xx anyway).
Unfortunately, at this point the parser is a bit crude, but it has
nice verbose output so you can trace down the problem in the menu file
A menu starts with the word `Menu' followed by the menu name (not the
title), and ends with the word `EndMenu'. Each menu consists of a
variety of tokens and their respective arguments, tokens and arguments
are split by the character `:'. At this point there is no escape
character, so you cannot use `:' in menu text. Every token has at
least one argument, which is what will appear on the screen.
The tokens currently recognized by Flin are as follows:
* `Title': denotes the title of the menu (you can have as many
as you like).
* `Exec': denotes an executable item and has two arguments,
the second is the command line to execute.
* `Args': denotes an executable with user-inputed command line
arguments. The optional `Prompt' field contains the title for
the dialog box.
USE WITH CARE, this could be a whopping security whole when
Args:Send a file (ZMODEM):sz:Prompt:
* `SubMenu': denotes a link to another menu and has two
arguments, the second is the name of the Menu to link to.
* `Exit': quits the current menu, if the current menu is the
first menu, you will be logged out.
Exit:Back to Main Menu:
* `Quit': Log out of Flin.
* `Nop': is for comments
Nop:This is a comment:
Putting it together:
To execute the menu, you can either put the line `#!/usr/local/bin/flin'
at the first line in the menu, or type `flin <menu-name>'.
A sample menu is provided with this distribution, please examine it.
HOW TO GET HELP:
If you find a bug PLEASE send me a report describing it, or fix it
yourself and send me a patch with description.
Send all patches/advice/questions/flames to
`firstname.lastname@example.org' I hope you find this software useful, and
please: hack away at the code, add new screen modules, take some items
off the TODO list, add some items to the TODO list. The only thing I
ask is that you send me patches (with comments) when you have done
Or just talk to a good shrink.
WHERE TO GET UPDATES:
Major and minor version revisions will be posted to
comp.os.linux.annouce. They will be released as a full distribution in
the primary/secondary sites as listed in the lsm entry.
The secondary site tends to get updated quicker than the primary, if
you're keen on bleeding edge updates head there.
Notes on patchlevel revisions:
I revise the patchlevel when bugs are fixed or small features added, I
bump up the minor version when big features change. Major level
revisions happen rarely, and indicate major changes (or new-found
Patchlevel revisions will not be posted to comp.os.linux.announce.
They will be released in unified diff form ONLY. Apply with
`patch -p1 < flin-x.x.x.patch'.
Alternately, if you wish to be informed of updates automagically, send
me mail at `email@example.com' saying so. If a lot of you guys
want to know I could set up a mailing list (as soon as majordomo works