Skip to content

Thenlie/wizsh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wizsh GitHub license Buy me a Coffee

Open Source Builds badge Forks Open Issues Closed Issues

A simple shell written in C!

This shell was created as a final project for the Harvard CS50 course. As my first real dive into independent C programming, it was an amazing tool to learn the ins and outs of C, git and how shells function on a lower level.

Bash and zsh were the main inspirations for the shell, the latter inspiring the name as well. The initial goal was to create a simple command line interface that accepted specific commands and responded to them. As I progressed, I eventually wanted this to become a fully featured shell with git integration, directory navigation and more!

In the v1.0.0 release, wizsh is capable of most common directory navigation commands as well as file and directory modification. It also contains a number of git commands, enough to maintain a small repository. Be sure to check out the wiki for a full list of commands.

Git Terminal

Demo 🎥

https://youtu.be/RtaXa6_exLE

Screenshot 📸

image

Table of Contents

  1. Installation
  2. Usage
  3. Contributing
  4. Libraries
  5. Questions

Installation

PREFACE: Wizsh was built on an M1 Mac with no other systems in mind! This means that there are likely issues when attempting to build and run this on any x86 machine. This would be a great issue to contribute to!

These instructions assume that you have installed homebrew and all other dependencies. In most cases, the command below will install all the packages you will need for this app.

brew install libgit2 pkg-config libssh2 openssl

Release

To use wizsh, first install the latest release.

Next, simply run the binary wizsh located in the /bin directory.

Local

To run wizsh locally, you will first need to clone the repository.

Next, navigate to the wizsh directory. Typically just cd wizsh from wherever the clone command was run.

To build the binaries you will first need to run make build. This created the object and binary directories. Use the command make to build to binary. It is usually best to run a make clean first to make sure you are starting a fresh build.

Run the binary by using the command bin/wizsh. This is the same as cd bin && wizsh.

Usage

Be sure to check out the wiki for information on commands!

Contributing

Wizsh is very open to contributions! If you have a feature request, or bug report, please open an issue with the applicable tag. If you would like to simply create a feature, fork the repository and add in your changes. Then submit a pull request which will be reviewed and eventually merged if it meets all contribution requirements.

I would be absolutely thrilled to contiue working on this with other developers. If you have noticed a long period of inactivity, feel free to reach out to me at the link below to get the current status of this project.

Libraries

A handful of libraries were used to create this project. Without them, a lot of features would not have been possible. A list of all included libraries can be found below with links to their websites/documentation.

Questions?

If you have any questions about the project you can reach out to me via email or GitHub with the information below.

Email: leithen113@gmail.com

GitHub: Thenlie