diff --git a/README.md b/README.md index eca6ff7..68fd9c3 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,21 @@ -# The Burning Bush: A simple UNIX command interpreter +

The Burning Bush

+

A simple UNIX command interpreter

-![The Burning Bush](./media/mother-earth-burning.gif "Mother Earth Burning Sticker") +

+The Burning Bush +

-## Table of Content +## Table of Contents * [About](#introduction) * [Installation](#installation) - * [Requirements](#requirements) - * [How to install](#how-to-install) + * [Requirements](#requirements) + * [How to install](#how-to-install) * [Usage](#usage) - * [Supported Commands](#supported-commands) - * [Other features](#other-features) -* [Uninstallation](#uninstallation) + * [Supported Commands](#supported-commands) + * [Other features](#other-features) * [Examples](#examples) +* [Uninstallation](#uninstallation) * [Caveats](#caveats) * [Acknowledgement](#acknowledgement) @@ -34,11 +37,11 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ### Requirements * **UNIX-like environment**, like macOS and Linux. -* GNU **GCC**, or **clang** LLVM compiler. +* GNU **GCC**, or LLVM **Clang** compiler. ### How to install -Run the install.sh script with root privileges to install: +Run the [installation script](./install.sh) with root privileges to install: ```zsh sudo ./install.sh @@ -51,8 +54,7 @@ Also, you can compile it on the command-line with `-Wall -Werror -Wextra -pedantic` flags to generate warnings for potential issues/bugs. Use option `-std=gnuXX` where `XX` can be `99`, `11`, `17` or `2x`, depending on the -latest version of C supported by your compiler -(it is advisable to compile with the latest stable standards). +latest version of C supported by your compiler. For example, @@ -69,7 +71,7 @@ mkdir -p ./cmake-bush "$(command -v cmake)" -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM="$(command -v ninja)" -G Ninja -S . -B ./cmake-bush -"$(command -v cmake)" --build ./cmake-bush --target bush -j 3 +"$(command -v cmake)" --build ./cmake-bush --target bush -j 4 # You can now run # cd cmake-bush/src && ./bush @@ -89,36 +91,33 @@ Terminate with `exit`. The Burning Bush supports all the standard UNIX commands (every program in PATH) as well as a few builtin commands. -The builtins supported are: +The **builtins** supported are: * `cd [directory]`\ -Changes the shell working directory. With no argument -(or with `~` or `~/` arg), the working directory -is changed to $HOME. -`cd -` changes the working directory to the previous working directory. - -* `echo [args]`\ -Writes arguments to the standard output. + Changes the shell working directory. With no argument + (or with `~` or `~/` arg), the working directory + is changed to $HOME. + `cd -` changes the working directory to the previous working directory. * `exit [status]`\ -Exits the shell with status (0 by default or if called with no argument). + Exits the shell with status (0 by default or if called with no argument). * `pwd`\ -Prints the shell working directory. + Prints the shell working directory. * `export [name[=value]]`\ -Export attribute for shell variables. + Export attribute for shell variables. * `history`\ -Display history of commands.\ -The `!` operator is also supported for executing -commands in the shell history. (eg `!!`, `!23`, `!3`). + Display history of commands.\ + The `!` operator is also supported for executing + commands in the shell history. (eg `!!`, `!23`, `!3`). * `help [command]`\ -Displays help. `help command` displays help for `command`, where `command` -can be `cd`, `echo`, and `exit`. `help`. -Without any argument, (or with an invalid argument), -the general shell help is printed. + Displays help. `help command` displays help for `command`, where `command` + can be `cd`, `echo`, and `exit`. `help`. + Without any argument, (or with an invalid argument), + the general shell help is printed. ### Other Features @@ -137,15 +136,6 @@ username@hostname:current_working_directory$ > ``` -## Uninstallation - -Run the uninstall.sh script with root privileges to uninstall -The Burning Bush from your system: - -```zsh -sudo ./uninstall.sh -``` - ## Examples ```console @@ -220,6 +210,15 @@ normal@prompt:bush$ echo $? 98 ``` +## Uninstallation + +Run the [uninstallation script](./uninstall.sh) with root privileges to uninstall +The Burning Bush from your system: + +```zsh +sudo ./uninstall.sh +``` + ## Caveats * Command separators `;`, `||`, `&&` are not supported. @@ -228,7 +227,7 @@ normal@prompt:bush$ echo $? ## Acknowledgement -Repository author: [Ian Duncan](https://github.com/dr8co "Ian") +Project author: [Ian Duncan](https://github.com/dr8co "Ian") The **"Mother Earth Burning Sticker"** courtesy of [Tenor](https://tenor.com/ "Tenor") and [INTO ACTION](https://tenor.com/official/intoaction "intoaction"). diff --git a/install.sh b/install.sh index 1d3a8a2..4a95c19 100755 --- a/install.sh +++ b/install.sh @@ -17,7 +17,7 @@ APP_PATH="/opt/burning_bush" BIN_PATH="/usr/local/bin" MAN_PATH="/usr/local/share/man/man1" -echo -e "Installing The Burning Bush..\n" +echo -e "Installing The Burning Bush 3.0 ..\n" echo -e "Compiling..\n" diff --git a/man/burning-bush.1 b/man/burning-bush.1 index 9433042..aa17354 100644 --- a/man/burning-bush.1 +++ b/man/burning-bush.1 @@ -1,4 +1,4 @@ -.TH man 1 "21 January 2023" "2.1" "The Burning Bush man page" +.TH man 1 "18 February 2023" "3.0" "The Burning Bush man page" .SH NAME .B The Burning Bush - A simple UNIX command interpreter. diff --git a/src/arrays.c b/src/arrays.c index 197100c..28d917c 100644 --- a/src/arrays.c +++ b/src/arrays.c @@ -2,8 +2,8 @@ * @file arrays.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for functions to manipulate arrays. - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/directories.c b/src/directories.c index 6111374..37663b5 100644 --- a/src/directories.c +++ b/src/directories.c @@ -2,8 +2,8 @@ * @file directories.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for directory-related functions. - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/environment.c b/src/environment.c index 871e2d4..9005c89 100644 --- a/src/environment.c +++ b/src/environment.c @@ -2,8 +2,8 @@ * @file environment.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for manipulating shell environment. - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/execution.c b/src/execution.c index 54e6138..c5d8053 100644 --- a/src/execution.c +++ b/src/execution.c @@ -2,8 +2,8 @@ * @file execution.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for functions that handle execution of commands. - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/fileops.c b/src/fileops.c index 03e7e1a..96516bb 100644 --- a/src/fileops.c +++ b/src/fileops.c @@ -2,8 +2,8 @@ * @file fileops.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for file operations - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/get_info.c b/src/get_info.c index f9f7d66..a64890e 100644 --- a/src/get_info.c +++ b/src/get_info.c @@ -2,8 +2,8 @@ * @file get_info.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for functions to extract information. - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/globs.c b/src/globs.c index 3a5e963..1eb320d 100644 --- a/src/globs.c +++ b/src/globs.c @@ -2,8 +2,8 @@ * @file globs.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for glob operations. - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/help.c b/src/help.c index c6628bd..3d39dea 100644 --- a/src/help.c +++ b/src/help.c @@ -2,8 +2,8 @@ * @file help.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for help-related functions. - * @version 2.1 - * @date 2023-02-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/help_msgs.c b/src/help_msgs.c index 8493420..0a0c08e 100644 --- a/src/help_msgs.c +++ b/src/help_msgs.c @@ -2,8 +2,8 @@ * @file help_msgs.c * @author Ian Duncan (dr8co@duck.com) * @brief file for help messages. - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/history.c b/src/history.c index 5b4dab8..c66cc0f 100644 --- a/src/history.c +++ b/src/history.c @@ -2,8 +2,8 @@ * @file history.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for manipulation of shell history. - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/main.c b/src/main.c index 33d459f..3bcbb2f 100644 --- a/src/main.c +++ b/src/main.c @@ -2,8 +2,8 @@ * @file main.c * @author Ian Duncan (dr8co@duck.com) * @brief entry point to the shell - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/main.h b/src/main.h index c46429c..0253deb 100644 --- a/src/main.h +++ b/src/main.h @@ -2,8 +2,8 @@ * @file main.h * @author Ian Duncan (dr8co@duck.com) * @brief project header file - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/memory.c b/src/memory.c index b223f5e..f7e8d09 100644 --- a/src/memory.c +++ b/src/memory.c @@ -2,8 +2,8 @@ * @file memory.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for memory management and related functions - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/numbers.c b/src/numbers.c index 4fa7b3d..d0e34d7 100644 --- a/src/numbers.c +++ b/src/numbers.c @@ -2,8 +2,8 @@ * @file numbers.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for numerical computations - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/process_cmd.c b/src/process_cmd.c index 5eab8e9..f7f94a2 100644 --- a/src/process_cmd.c +++ b/src/process_cmd.c @@ -2,8 +2,8 @@ * @file process_cmd.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for functions to process commands - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/prompt.c b/src/prompt.c index d615e57..273f26d 100644 --- a/src/prompt.c +++ b/src/prompt.c @@ -2,8 +2,8 @@ * @file prompt.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for printing shell prompts - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/signal_handler.c b/src/signal_handler.c index 45e1b94..f9e76e1 100644 --- a/src/signal_handler.c +++ b/src/signal_handler.c @@ -2,8 +2,8 @@ * @file signal_handler.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for input handling - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/strings_1.c b/src/strings_1.c index cbef2b0..b394e4b 100644 --- a/src/strings_1.c +++ b/src/strings_1.c @@ -2,8 +2,8 @@ * @file strings_1.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for string operations - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/src/strings_2.c b/src/strings_2.c index 42a35f2..6f31741 100644 --- a/src/strings_2.c +++ b/src/strings_2.c @@ -2,8 +2,8 @@ * @file strings_2.c * @author Ian Duncan (dr8co@duck.com) * @brief source file for string operations - * @version 2.1 - * @date 2023-01-21 + * @version 3.0 + * @date 2023-02-18 * * @copyright Copyright (c) 2023 * diff --git a/uninstall.sh b/uninstall.sh index 6e6760b..b52f608 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -15,7 +15,7 @@ APP_PATH="/opt/burning_bush" BIN_PATH="/usr/local/bin" MAN_PATH="/usr/local/share/man/man1" -echo -e "Uninstalling The Burning Bush..\n" +echo -e "Uninstalling The Burning Bush 3.0 ..\n" echo -e "Cleaning man page..\n" @@ -47,4 +47,4 @@ echo -e "Updating man database..\n" mandb >/dev/null 2>&1 -echo "Successfully uninstalled The Burning Bush. Thank you, Bye! |(•◡•)|." +echo "Successfully uninstalled The Burning Bush 3.0. Thank you, Bye! |(•◡•)|."