Inspiration

BASH scripting is fun, sharing BASH scripts is not.

What it does

Builds a level of abstraction that makes installing and maintaining BASH scripts easy.

How I built it

Leveraged Google Spreadsheets as a database using the Google Visualization api along with GQL to build an API that is able to communicate with a Spreadsheet. Wrote a BASH script that feeds inputs into a Python program which handles the operating system details such as writing files, switching directories, etc.

Challenges I ran into

Using Spreadsheets as a database was not very well documented since it wasn't a very orthodox thing to do. We had to dig deep into the Visualization API to find a way for us to hack together a method to Query from the spreadsheet via REST. Managing the environment variables, Sourcing all packages to bash_aliases, and making sure things get executed from the right place at the right time proved to be more difficult than we imagined. I hadn't done very much work on the OS level before so it didn't come easy.

Accomplishments that I'm proud of

You can now install and maintain any BASH script that a friend gives you (and vice versa) with a simple CLI, figuring out how to query a Spreadsheet as a database, and getting each new script Sourced and ready to go on installation.

What I learned

MODULARIZE! Separation of concerns saved me countless times. Whenever something would break (more frequently than you'd imagine) being able to know exactly which file and which function call was affected and only having to rectify that error in one place was a life savor. We also learned how to scan through API Docs and to be able to use them to find the thing you're looking for.

How we incorporated Microsoft API's

To demonstrate how easy BASHy is to use we created a series of BASH scripts that an engineer might use in the workplace. We've written a script that queries the Bing Traffic API and pipes that data into a log file, a script that queries your Azure Search service, and others. Sharing these scripts was effortless and shows the power of BASHy.

What's next for BASHy

GUI?

Share this project:

Updates