I have several Bash script projects that I share on here. One of the biggest pains developing them is that whilst they all share the same interface code, because it's integrated into each project, if I make changes to it in one project, it takes a while to go through and pass those changes on to all of the others. It's a real time waster, and gets a bit confusing.
To solve this I've created this project, which is a generic set of interfaces. The idea being that I will no longer integrate the interfaces into projects when possible, which should be the case for most of my projects. Instead I dump the generic interfaces into a project I'm working on, and configure it for the project by altering/creating some config files. This will make it sooo much easier to syncronize interface changes across all projects . Best of all, this will make it easier for other people to use my interfaces in their projects.
That being said, instead of writing these generic interfaces in Bash, I decided to port the project to PHP. I'm using PHP as I was using Bash, so releases will have additional dependencies (same as a Bash script could). I've been wanting to add a web-gui interface to some projects. While most of my projects don't need a GUI, I think one or two would benefit from it. I figured it would be easier for me to do this entire project in PHP rather than to write half the project in PHP and the other half in Bash, so that's why this project is written in PHP.
This project is a set of PHP scripts that offer commandline usage (interactive, and non-interactive), and a web-gui. Not all tools making use of this project will necessarily make use of all three interfaces. Despite being written in PHP this project isn't cross-platform, Linux only.
While the project is currently functioning, there are a few bugs I still need to fix, the webgui isn't beautiful yet, and the project isn't as configurable as I'd like yet. So I don't have a release to post. I do however have a few screenshots to share to satisfy anyone curious.
Commandline Interface Screenshot
In this picture you can see the command I ran, and an output from the dummy test task I'm using while building the project. This dummy task just outputs the name of the user running the tool. It will not be included in the final project. It's just so that I can test the project while I build it.
Interactive Commandline Interface Screenshot
Again running the dummy task here.
Webgui Interface Screenshot
I didn't bother to include a screenshot of the output from the webgui as presently it's just text. I haven't done any design on the webgui yet. I've just been focused on getting it functioning.
I'm still figuring out exactly what I want and need from the project. Most of my focus so far has gone into the non-interactive commandline interface, because that's the most important one. I'm also really trying to make the project as easy to configure as possible, because who wants to use something that's difficult .
Hopefully this project will allow me to create better tools, spend less time transitioning interface changes across projects, have fewer dependencies for my tools, and make it easier for other people to add interfaces to their projects.
I've been pretty busy lately, so I haven't been able to work on this project as much . I'm hoping to have a testing release soon, but it depends how much time I can find.