Hey Gruven, looks good. Kind of reminds me of smit(ty) for AIX. I don't know AIX that well, but we have it at work, so it saves me a lot of work looking up IBM's goofy commands.
Can you make it detect what userID it's running as, and if it's not root, ask for sudo / su - credentials to execute whatever must be privileged? I do it a lot with shell scripts, so I imagine that there is a kernel API call that can be made to check for UID. If you're using system calls from your program (I think that's what it's called, I haven't used C(++) for several years, so I forgot) then you could just modify your program string to have sudo or su before it. Maybe add an ~/.upkeeprc that can have a sudo or su option to allow users to set how it asks for elevated privileges.
Just suggestions, you may have a better way of doing it.
Those are some great suggestions, and I am adding the ones I don't already have in testing to my to-do list.
Originally Posted by meton_magis
Yes, I am using system calls even though it is frowned upon, but in this case it isn't causing memory leaks.
I want to add in UID checking and a permissions system, but I am only able to work on this in my spare time and finals are coming up. As I update things, I am keeping my repository on sourceforge updated with the latest source and binary. I haven't had much time this week to work on it, just added some basic stuff like runlevel editing and the like.
That is really the reason I have created this, so admins won't have to look everywhere for the commands and switches, just use a menu. I don't like typing things over and over, so it works well for me.
I am also planning to make the menu more in depth, and branch out into a couple other distros with their commands and setup, but that may take a while. I may end up later divising some sort of plugin api so that distros can add their own menu system with commands and the like. That way it can be modular, but I kinda like it being all in one. I may just make it optional later. A lot of ideas are running through my head for it, so who knows.
Keep the suggestions coming! I have created a "need to be implemented list" and it is growing.
Finals are in about a week and a half, so after I should have 2 - 3 weeks to work on this. Since I am using this for practice, any input or suggestions are welcome, and I am always willing to learn something new.
Look for me to post an update in about a month, and hopefully it will include support for one more distro soon.
Sweet. Hopefully I can get ny rig running soon to help you test it.
Sent from my SPH-D710VMUB using Tapatalk 2
As reluctant as I am to post this here again, I have restarted my maintenance program, upkeep. It is for Gentoo right now, and now that it has been rewritten I plan on adding a conf file and adding new distributions to it.
I don't want to hear about having to be sudo or root to run it, because it is a SYSTEM MAINTENANCE program, and honestly unless you are root, you aren't doing any system maintenance.
Now, since that is clear, it has been rewritten to be object oriented, so not every operating system object will be loaded on start, which means I was able to remove a huge overhead problem. The support for the operating system will still be compiled at the moment, but I plan on fixing that soon, to where it will only compile for the target system. That will come in a future update.
If you want to try it, head over here:
To compile, just uncompress the file into the directory you want, and then run
You can move the binary (upkeep.bin) anywhere you want, as it has no dependencies and does all directory operations within the program.
If you try it and don't like it, let me know! This is a project of mine to reinforce the things I am learning in college working towards my BS in computer science, so it is not and probably will not be perfect until I have more time or more help. If you don't try it and just want to criticise my choices, don't. I accept constructive criticism but trolling will not be tolerated.
So anyway, if you use gentoo, try it out! The source is on github if you want to look at it to see what it is doing, and it is super easy to compile.
I don't use Gentoo as I don't have the patience to compile everything from source but I find myself wondering if you are going to end up with something like the Mageia control centre? Which may be of more use to a project like Sabayon, than your average Gentoo user (or at least how I imagine the average Gentoo user)
No, this is more of an actual maintenance program than it is a general use program. It has options to help you configure your own kernel, update grub, etc... It is meant for system administrators.
Also, it will support many operating systems as I have time to write the objects and include them in the source, but since I use Gentoo I started with only gentoo. I plan on adding .deb distro support soon, and then on to rpm, and with some help, even arch. The actual binary has no dependencies and should even run on embedded systems.
Like I said before, this is a personal project of mine that fills a need for me. It is not a package manager, but it does make calls to the package manager for certain things. This is teaching me a lot about programming in C++, as well as the inner working of different distributions, which is why it is taking me a while (not to mention homework getting in the way) to code support for other distros.
No gui is planned for now to keep the dependencies at null, but I do plan on writing a gui frontent that will be optional when I get the program complete and stable.
You are welcome to try the program even if you don't use Gentoo, you just won't be able to use the package manager stuff just yet, and the menu set that is on it is Gentoo specific so it may or may not play well with your distro. It won't hurt to run it as a user though, and try it out if you want. Without superuser priveleges, it is just a normal program.