Welcome to Mundus’s documentation!¶
Contents:
Introduction¶
About Mundus¶
Mundus is a small utility that can help you keep your /home
folder clean.
It keeps an internal database of known applications and folders, and automagically
detects those apps that where uninstalled but left configuration files. Each supported
application is also called a module, and each folder it describes is
called a submodule.
Backups¶
There are two options to make backups before cleaning a directory.
- Automatic
- If the directory to clean is below the size limit, a backup will be automatically executed before the clean begins.
- Manual
- The alternative, just click the Backup button when selecting a submodule.
Reports¶
This feature is useful if you want to keep track of the freed space, the amount of files deleted, or any other data you are interested in. They are stored as JSON files and are easy viewable if you go to
How To Install¶
Archlinux¶
Execute:
$ yaourt -S mundus
You can browse the AUR Package
Or, if you are brave enough to use bleeding edge:
$ yaourt -S mundus-bzr
Debian (and derivatives)¶
Head to the Downloads page and download the
.deb
package. Then open a terminal in the same folder and execute:
$ sudo dpkg -i <package>
Fedora (and derivatives)¶
Head to the Downloads page and download the
.rpm
package. Then open a terminal in the same folder and execute:
$ sudo rpm -i <package>
Ubuntu¶
Installing Gambas 3¶
Note
The Gambas3 packages are now included in the Stable PPA.
Adding the PPA¶
To use the Stable version (Recommended) :
$ sudo add-apt-repository ppa:sebikul/mundus-stable
If you want to test bleeding edge features:
$ sudo add-apt-repository ppa:sebikul/mundus-daily
Installing Mundus¶
After adding the Gambas and Mundus PPAs, just execute:
$ sudo apt-get update && sudo apt-get install mundus
What Are Modules?¶
Modules are a simple way of telling gambas precise information about a specific application or piece of software. The type of information they provide can be divided into 3 parts.
The Basics¶
This section groups the basic information a module can provide.
- Name
- This will be the name Mundus will use to refer to this application.
- Category
- A short name so that the user can skip the description and still know what the application does
- Description
- A short paragraph describing the application, and it’s uses.
- Executable
- This is the name of the executable file inside one of the folders specified with the $PATH env var.
- Website
- Used by Mundus to provide an easy way of accessing an application’s website.
- Warning
- A general warning shown when displaying other information about an application.
- Submodules
- Here, every submodule the module packages is described along with its Path, Description and Warning
- Directories
- Returns an array of every directory it contains in its submodules for easy parsing.
Local State¶
This properties are used to track the state of the application on the user’s PC.
- isInstalled
- This is used to detect whether or not the executable was found.
- HasConfig
- This variable will evaluate to True if any of the submodules is found (i.e. any of the directories listed as submodule exist)
- Version
- Used to store the version of the local module. It is later compared with the version for the same module in the Module Index
About the Module Index¶
Mundus is able to automatically keep an updated version of the module index. This means that updates, or new modules, can be pushed to users without needing a release.
Internally, it uses a really simple versioning scheme. When a new module is pushed, the client detects a version it does not have locally and downloads it. If it’s the first release, it has a version number of 1. It is later incremented with each update. Finally, older versions are automatically deleted, but are kept online just in case.
Online Browser¶
Although the index was made to only be used by Mundus, you can view an online version here.
Grace Period¶
When an update is released, the index is branched, so that users who still haven’t performed the update aren’t left in the dark. I have decided to keep the outdated branch online for 2 (two) weeks after the release. Hopefully, it will be enough time for everybody to update.
After the grace period has passed, users trying to download the index will start receiving 404 errors, and switch to offline mode.
About Software Metrics¶
Software metrics are only used to track how much space and how many files where cleaned used Mundus. This data will be made available online soon to provide real-time stats.
Note
This feature is disabled by default, and enabled only at users request.
Cleaning Statistics¶
The following data is sent when a clean is executed:
- Module
- Submodule
- Cleaned size
- Cleaned files
It can be viewed online in the Index Browser Select the module you would like to see and click the Stats link.
Contribute¶
Mundus uses Launchpad for it’s project management, and bazaar for code hosting. Simple things like filling bugs, or providing some feedback are really helpful.
If you shall need it, send me an email to sebikul [at] gmail [dot] com
Translating¶
Translating Mundus is pretty straightforward. There are two alternatives. The easier one, just login to Launchpad, and open the Mundus project translation page. You can then use that pretty web interface to translate the missing strings.
The other alternative, a little more complicated, is to download the Gambas IDE (available when installing Mundus), fetch the source code, open the project in the IDE, and use the integrated translator.
If you use the first option I can automatically see that there is an update to one of the translations and import it. If you use the other option you will need to send me the file by email by exporting it or, if possible, branch the code and create a merge request.
Writing Modules¶
If you would like to write a module of your own, please follow this simple steps to get started.
Step 1¶
You will need the Index Editor to write a module. If you are using Ubuntu, it’s available in the PPA, follow the steps in How To Install to add it to your system. If you are using another distribution, you will need to compile it yourself (Its easy!).:
bzr branch lp:~sebikul/mundus/index-editor
cd index-editor
make
sudo make install
Step 2¶
Branch the Module Index (You will need to have Bazaar installed)::
bzr branch lp:mundus/index
Step 3¶
Okey, now it’s time to open the Index Manager. Once you are shown the main window, enter the full path of the index you downloaded in Step 2 and click Load. Once it finishes, click the New button to create a new module. Or, if you want to update an existing one, select the module you wish to update and click the Push button to increase the version number. Now you just need to double-click the module you wish to edit in the list to open the Module Editor.
Step 4¶
There are two ways of sending me the new or updated module. The easier is to create a branch, so that I can review it online and automatically merge it.:
bzr push lp:~USERNAME/+junk/BRANCHNAME
Where USERNAME is your launchpad username and BRANCHNAME is any short, descriptive name you can think of.
Now go the the online view of the new Bazaar repository you just created and click Propose for merging.
Alternatively, you can send me the new or updated modules via email, and I will just merge them.