Jerome Shidel has been working on a set of power utilities for DOS batch files. Called the V8Power Tools for DOS, they provide "Visual" equivalents to many command line tools, such as VCLS, VCHOICE, VECHO .. as well as new power tools such as VPROGRES (display a progress bar) and VFRAME (for text-mode boxes).
I would love to see an update to the FreeDOS install process that uses Jerome's V8Power Tools. It may help to know that we've previously discussed (on the mailing list, and individually with a few developers) that the next FreeDOS distribution should assume some defaults. For example, rather than ask "minimal install," "normal install," "complete install," and "custom install," simply assume a "default" installation. The only option that needs to be asked is if the user wants to install source code, too.
This simplifies the install process quite a lot. And it means that everyone starts with a standard configuration, which makes debugging easier (rather than having to ask "did you do a complete install or only the minimal install?" when helping someone with a question or problem). FreeDOS isn't very large, so limiting the install options is unlikely to be an issue for many people these days.
Applying Jerome's V8Power Tools, the INSTALL.BAT would be quite simple. Here's an example that I'm just making up (I haven't tested this):
VCHOICE"Hi there. You are about to install FreeDOS onto your computer. If this is not what you intend to do, please exit now." "Continue" "Exit" IF ERRORLEVEL 2 GOTO QUIT
VCHOICE"Do you want to install source code, too?" "Yes" "No" IF ERRORLEVEL 1 GOTO INSTALL
UNZIP -qq A:\INSTALL\PKGS\BASE\*.ZIP %EXCLUDE% -d C:\FDOS UNZIP -qq A:\INSTALL\PKGS\DEVEL\*.ZIP %EXCLUDE% -d C:\FDOS UNZIP -qq A:\INSTALL\PKGS\EDIT\*.ZIP %EXCLUDE% -d C:\FDOS REM ... and so on for other package sets
VCHOICE"FreeDOS has been installed! You can reboot the computer now, or you can just exit back to the system." "Reboot" "Exit" IF ERRORLEVEL 2 GOTO DONE
VECHO"Rebooting ..." REBOOT
:QUIT VECHO"You have aborted the installation." GOTO END
:DONE VCLS ECHO"Ok"
That batch script is over-simplified (it doesn't check if the C: drive is ready, doesn't run post-install scripts, etc.) but I think it's enough that you can see the idea I had.
I meant to share a note about this earlier, but then SourceForge went down and my attention was drawn to other things. I just wanted to share Corbin's note that Carbon OS is discontinued. Carbon OS was a distribution of FreeDOS for non-DOS users. I mentioned it on twitter in 2014.
I don't think of these tools as the "FreeDOS Install program" per-se. Rather, they are a set of useful batch tools that others might use for other things. It also makes a very nice FreeDOS Install program.
I imagine that the "V" tools will all share a common command line syntax. So options to define the background color, text color, window color, window background, screen title, and window title. Environment variables would also be a nice option.
So with the right options to define background color=blue, title background color=cyan, title text color=black, window background color=red, window text color=white, … title="FreeDOS 1.2", window title="Hi there!" … you might have this:
VECHO "This is a simple message box"
I'm just making stuff up as I type, but maybe the options could be defined as environment variables like so:
Years ago, I wrote the very first FreeDOS Install program. That was what really launched FreeDOS from its Alpha release to a Beta release in 1998, with the FreeDOS 0.1 "Orlando" distribution. Over time, I updated the FreeDOS Install program to make the install process more modular, to make things easier for a packager to assemble a FreeDOS distribution. The install process was quite simple back then: the FreeDOS Install program just scanned a list of packages and package "sets," and gave you the option of what sets to install, or what specific packages.
Later, another developer added a post-install process to update the system, to make it ready for first use. And that version is pretty much what you see today in the FreeDOS 1.1 distribution. The FreeDOS install process hasn't changed substantially, even from 1998.
I want to simplify the install proces. DOS is a very simple system; do we really need to have all these options of what packages and package sets to install? I don't think so. Let's just install the whole thing.
But I want to simplify things even more. When you take a step back, the FreeDOS Install program is just a wrapper to the Info-Unzip library. Once you set it in motion, it runs through all the packages and unzip them to the target drive and directory (usually C:\FDOS). We don't need a compiled program for that. We can simplify this to a smart batch script that calls Unzip for every package in the distribution.
My idea: Rather than create a single DOS application, create a set of small "batch utilities" that do the work of the install process, including the FreeDOS Install program. I imagine these batch utilities as "Visual" utility programs—utilities that are similar to their command-line counterparts, except they use a pretty full-screen interface. Let me define what I think is needed to simplify the install process using these Visual batch utilities. For each program, I'll use V ("Visual") to start the program name:
VCHOICE"prompt" "choice"… Display some text, and allow the user to select an option from a list.
Can be used to display simple prompts:
VCHOICE "Hi there. This is the FreeDOS 1.2 distribution…" "OK" "Exit"
Or, select what to install:
VCHOICE "Do you want to install everything?" "Yes, everything" "Just BASE" "Exit"
Or, select to install source code:
VCHOICE "Do you want to install source code, too?" "Yes" "No" "Exit"
VECHO"text"… Display some text. This might be used to display a message while the install process is busy working. For example, this could print a "Now installing FreeDOS…" message as the install process unzips all of the packages.
VCLS Clear the screen, and draw a basic screen (background color, header) without any windows.
It's clear to me that VCLS is the "base" program here; just clear the display and draw a basic screen with background colors and "FreeDOS 1.2" header. From that, it's a small step to build the VECHO program. And from VECHO, you are another step to build the VCHOICE program. And I think we need another simple program to help the install process along:
CHECKC Checks if the C: drive exists, and is formatted. The errorlevel could indicate status:
0 C: exists and is formatted 1 C: exists but is not formatted 2 C: does not exist
With a modular approach to a simplified install process, we might add other simple programs that do specific things. One program might detect hardware and output lines that get appended to CONFIG.SYS or AUTOEXEC.BAT.
Unfortunately, I am really really overcommitted right now. I wanted to write these programs over the winter break in December and January, but I didn't have the free time I thought I would have. But maybe others can take these ideas and run with them. Feel free to write these utility programs and contribute them to FreeDOS. This will help everyone. In particular, I think it is an important step towards the FreeDOS 1.2 distribution!
You might have noticed that I haven't been very active on the freedos-devel list lately. I'm not absent from the project, I haven't dropped out or anything. It's just that I volunteered for too many projects outside of FreeDOS, so I'm very overcommitted at the moment.
Aside from FreeDOS, I'm also mentoring for the GNOME Outreach Program for Women (now GNOME Outreachy) for usability testing. And at work, I am the Director of Information Technology and Campus CIO at a liberal arts university. That's a lot for me to balance between everything. And I do all the FreeDOS website stuff, and manage the archives at ibiblio, and update the FreeDOS social media at Twitter and Facebook. Somewhere in there, I try to have a personal life, too.
I'm also looking for a new place to work. I'm not out of work, but I would like to move on. Much of my free time is currently engaged with the job search.
So I'm currently having trouble meeting my FreeDOS commitments—but I'm still here! I am following things on the freedos-devel list, as best I can. And I am responding to email, but it may take a while before I can reply to your message.