https://github.com/s4m-mo/sandcastle
A high-performance, lightweight build tool.
https://github.com/s4m-mo/sandcastle
build-tool castle cli go productivity productivity-tools sandcastle
Last synced: 4 months ago
JSON representation
A high-performance, lightweight build tool.
- Host: GitHub
- URL: https://github.com/s4m-mo/sandcastle
- Owner: s4m-mo
- License: apache-2.0
- Created: 2022-07-27T16:58:34.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2025-03-24T10:36:44.000Z (7 months ago)
- Last Synced: 2025-05-18T11:11:24.705Z (5 months ago)
- Topics: build-tool, castle, cli, go, productivity, productivity-tools, sandcastle
- Language: Go
- Homepage:
- Size: 55.7 KB
- Stars: 20
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# 🏰
SandCastle**SandCastle** is a high performance, lightweight build tool for any language, OS or shell.
- [🏰 SandCastle](#--sandcastle)
- [Usage](#usage)
- [Arguments](#arguments)
- [_castle.yaml_](#castleyaml)
- [Installation](#installation)
- [Binaries](#binaries)
- [Windows](#windows)
- [Linux](#linux)
- [MacOS](#macos)
- [From Source](#from-source)
- [Recognised Shells](#recognised-shells)# Usage
## Arguments
- `` 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.
```yaml
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 aretasks: # 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](https://github.com/sam-the-programmer/sandcastle/releases/latest).
- Add it to your `$PATH` and you're good to go!### Linux
- Download the `castle` binary from [releases page](https://github.com/sam-the-programmer/sandcastle/releases/latest).
- Add it to your `$PATH` and you're good to go!### MacOS
- Download the `castle-macos` binary from [releases page](https://github.com/sam-the-programmer/sandcastle/releases/latest).
- 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