Type less. Code more.

Whilst developing and testing software you repeat many sequences of key strokes in your workflow that goo helps you automate.

You can share your automations with others on the team and with users and testers that may be less technical.

Automate Workflows

goo lets you automate frequently used commands to initialize projects, check the dev environment for required software, build and run your solutions and projects, create and seed data, perform version control.

Quickstart Projects

Many projects on Github and private repositories take hours to get working on a local dev environment.

They require a developer to follow (frequently out of date) ‘Getting Started’ instructions on which tools and dependencies to install to make a project work, which environment variables to set, docker containers to start, etc.

Use goo too make cloning and running a project as easy as..

git clone <some_repo>
cd <my_awesome_project>
goo init

You can easily change what your init command does.

Create Commands

Setup as many self-documented commands as you want in your .\.goo.ps1.

For example your goo commands can easily:-

  • Check that all required tools or frameworks are installed
  • Provide instructions on how to install them (or simply install them using scoop, winget or Chocolatey).
  • Set required environment variables
  • Confirm connectivity to VPN’s or corporate network resources
  • Start or stop containers
  • Build the project or solution
  • Create and seed databases
  • Run benchmarks and tests

…or anything else you need to make your project work, or be more productive.

Self-document Projects

Typing goo anywhere in your project folder hierarchy will display all the commands that you have created for your project. This self-documents project workflows and helps others on your team be more productive.

Leverage Powershell

As goo scripts are built on Powershell, you can leverage the full capability and power of any command that works at the command line.

You can use the rich set of class modules included with goo and add your own.

# command: goo clean | Removes data and build output
$goo.Command.Add( 'clean', {
    $goo.Console.WriteInfo( "Cleaning project..." )
    $goo.Command.Run('dockerDownIfUp')
    $goo.IO.EnsureRemoveFolder(".\_containers\")
    $goo.IO.EnsureRemoveFolder(".\dist\")
    $goo.Command.RunExternal('dotnet','clean --verbosity:quiet --nologo','.\sln')
    $goo.StopIfError("Failed to clean the project.")
})

Getting Started

To add goo to your project: Start Powershell and navigate to your project folder root. Then type:

iwr get.goo.dev | iex

This will add .goo as a folder to your project and create a sample .goo.ps1 script in your main project folder.

You can edit .goo.ps1 and start adding commands to automate workflows in your project.