Skip to content

sam-the-programmer/sandcastle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏰
SandCastle

SandCastle is a high performance, lightweight build tool for any language, OS or shell.

Usage

Arguments

  • <task-name> run the specified task.

castle.yaml

This is a configuration file that contains all of the tasks and things that you want SandCastle to do.

Create a castle.yaml file, using castle init or any other method of your choice.

The contents are as follows.

config: # the configuration options
  log_shell_cmds: true # should it give a title for shell steps in a task?

  # log_level is for the internal logging of SandCastle
  log_level: debug # choose one of "info", "debug", "warn", "error" or "none" - these are

tasks: # the tasks, use the name of the task as a CLI argument
  run: # the name of the task
    - echo "Hello, World!" # the steps of the task
    - echo "Second Step!"
  deploy: # another task
    - echo "Deployed!" # you can use shell commands, or any other terminal command

Now, if we wanted to run the deploy task, we would run castle deploy. Just like that!

Installation

Binaries

Windows

  • Download the castle.exe binary from releases page.
  • Add it to your $PATH and you're good to go!

Linux

  • Download the castle binary from releases page.
  • Add it to your $PATH and you're good to go!

MacOS

  • Download the castle-macos binary from releases page.
  • Rename it to castle
  • Add it to your $PATH and you're good to go!

From Source

Clone the repo and run "go build". To run with a demo file, run "castle run" using SandCastle itself.

Recognised Shells

In order to run shell commands, you need to have a shell installed. SandCastle supports the following shells:

  • bash
  • zsh
  • sh
  • csh
  • ksh
  • tcsh
  • dash
  • fish