Home

Awesome

General information

Bob is Not Intelligent console assistant. Bod doesn't try to replace any existing shells or build systems. It is designed for extend them. Often when you have few projects to work, they use different commands or build systems to maintain. To organize it, typically you have to add or global aliases to your shell or create scripts which grow over time to maintain it. Bob trying to solve this problem by adding ability to create local aliases for each directory. It is doing this by creating configuration files (in YAML) with defined aliases in each directory. When Bob is executed in selected directory, it reads configuration file (if exists) for selected directory for aliases.

INFO: This project is no longer maintained. Feel free to clone it and take care about it.

Configuration file

Bob looking for file .bob.yml in current directory (where it is executed). If it finds it, it reads all available commands from here. Sample configuration:

 version: 3.0
 - include: ../.bob.yml
 - command:
   name: list
   variables:
       - DIRECTORY = /home/user
   execute:
       - ls $DIRECTORY
   description: Show content of $DIRECTORY directory
   output: standard
   flags:
       - unixonly

Explanation:

Commands to execute can have also variables used in the definitions. Variables start with sign $. $ and number after it means argument from command line entered during executing Bob command. For example, $2 means second argument after Bob command name. Thus, if you enter: bob dosomething one two, $2 will be replaced by word two. $ and any alphanumeric character(s) means environment variable with that name, available during executing this Bob command. In this example, it is variable $DIRECTORY. For more advanced, real life example, look at it own .bob.yml file.

Build the program from sources

Docker way

You can use Docker images adabuild and adabuildwin64 from the project dockerada. They contain all libraries and compiler needed to build the game. Recommended version is 9

To build Linux version of the program, download adabuild:9 image and type in console:

docker run --rm -v [path to source code]:/app ghcr.io/thindil/adabuild:9 /bin/bash -c "cd /app && gprbuild -p -P bob.gpr -XMode=release"

To build Windows 64-bit version of the program, download adabuildwin64:9 image and type in console:

docker run --rm -v [path to source code]:/app ghcr.io/thindil/adabuildwin64:9 /bin/bash -c "cd /app && gprbuild -p -P bob.gpr -XMode=release --target=x86_64-windows"

Classic way

To build you need:

If you have it, navigate to the main directory(where this file is) to compile:

Running it

When you are trying to run the program, use bob executable from bin directory.

To get list of available commands/aliases for Bob, run it or without any arguments or with argument help:

bin/bob will show list of available commands

bin/bob help will show list of available commands too

Testing versions

Here are available testing versions of the game. You can find them in Actions. Just select option from the list of results to see Artifacts list. To use them, just extract file(s) from the archive.

Generating code documentation

To generate (or regenerate) code documentation, you need ROBODoc and Tcl interpreter. If you have them, in the main program directory (where this file is) enter terminal command: others/generatedocs.tcl. For more information about this script, please look here. This version of script have set all default settings for Bob code. If you have Bob installed, you can also use for that the command: bob docs.

Contributing to the project

For detailed information about contributing to the project (bugs reporting, ideas propositions, code conduct, etc.), see CONTRIBUTING.md

Licenses

Bob is available under GPLv3 license.


That's all for now, as usual, probably I forgot about something important ;)

Bartek thindil Jasicki