Swift-based utility for managing project commands, inspired by Make. Write your project commands in Swift and enjoy type safety, code reuse, and seamless integration.
struct Commands: SakeApp {
public static var sayHello: Command {
Command(
run: { context in
let name = context.arguments.first ?? "World"
print("Hello, \(name)!")
}
)
}
}
โฏ sake sayHello Stranger
Hello, Stranger!
Important
Sake is under active development, with ongoing updates and improvements. Use with caution in production environments.
๐ Documentation โข ๐ Getting Started โข ๐ป GitHub
- Type-Safe Commands: Write commands in Swift with full IDE support and compile-time checks
- Command Dependencies: Define commands that depend on other commands
- Conditional Execution: Skip commands based on custom conditions
- Command Groups: Organize commands into logical groups
- Shell Completion: Tab completion for all commands
- Extensible: Use any Swift package to enhance your commands
-
Install Sake
brew install kattouf/sake/sake
-
Initialize a new SakeApp:
sake init
-
Run your first command:
sake hello
- Build Automation: Compile your project with different configurations and run tests
- Release Management: Automate version updates
- Code Quality: Run formatters and linters to maintain consistent code style
We welcome contributions! Whether it's:
- ๐ Bug Reports
- ๐ก Feature Requests
- ๐ Documentation Improvements
- ๐ง Code Contributions
๐ Before writing code: We kindly ask that you open a discussion or issue first to discuss your proposed changes. This helps ensure your time is well-spent on features or fixes that align with the project's direction and prevents duplicate efforts.
Check out our Contribution Guide to find more details on how to get started.
Sake is released under the MIT License. See the LICENSE file for details.