A manager for lab computational resources.
- Ensures all files in a shared folder are group readable.
- Encourages users to use symbolic links instead of copying large files.
- Suggests file compression when appropriate to save space.
- Modular design allowing for easy extension.
If you want the latest and greatest development code, go ahead and clone this repo:
git clone https://github.com/jackstanek/BotBot.git
cd BotBot
then run
./install.sh
If you want to run the test suite as well, you'll need to run
./install.sh -t
instead.
To run the test suite just run py.test
in the project directory.
If you want to use BotBot to check files and directories on demand, use the command:
botbot file [options] PATH
There a handful of options you can use:
-c, --cached
: generate a report based on the results of the most recent check.-k, --force-recheck
: clears the cached version of the last check and rechecks the file or directory.-s, --shared
: use a set of checks intended for files and directories in the shared folder.-l, --follow-symlinks
: force BotBot to follow symbolic links.-m, --me
: only check files that belong to you.
You can also use BotBot to check if your environment variables are
set up correctly. However, this feature needs a little
configuration to work properly. You must first configure the
[important]
section in botbot.conf
.
After that, you can use the command:
botbot env
to check that the environment variables are properly configured.
BotBot uses 2 primary configuration files: ~/.botbotignore
and
~/.botbot/botbot.conf
.
This is a list of files that BotBot won't check. It is similar in
structure to a .gitignore
file, but it's a bit simpler. Instead of
git's structure, each line is a string which can be handled by the
Python built-in glob
module. Anything after a #
character will be ignored, so these can
be used to add comments.
Configuration variables are stored here. The file is an .ini-style configuration formatted file. The variables are stored in sections as follows:
-
[checks]
-
oldage
: defines how many days old a file must be to be considered "old". -
largesize
: defines how many bytes large a file must be to be considered "large".
-
-
[email]
(REQUIRED for email mode)domain
: the domain that the users' email accounts are onemail
: your email address (which emails are sent from)password
: your email passwordsmtp_server
: the SMTP server you will send fromsmtp_port
: the port the SMTP server uses (probably 587, check with your server administrator or documentation)grace_period
: amount of time, in minutes, after changing a file that a user can fix potential issues before receiving an email about said changes
-
[important]
ext
: defines which file extensions are considered "important." By default, *.sam and *.bam files are denoted as important.pathitems
: defines which paths (separated by colons) should be present in the PATH environment variable.ldlibpath
: defines which paths (separated by colons) should be present in the LD_LIBRARY_PATH environment variable.
BotBot uses pytest as its test suite. To run the tests, run
py.test
in the project root directory.