Skip to content

Latest commit

 

History

History
79 lines (60 loc) · 2.77 KB

README.md

File metadata and controls

79 lines (60 loc) · 2.77 KB

🍶 Sake

Platforms Swift Versions Latest Release Build Status

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

⭐️ Key Features

  • 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

📚 Getting Started

  1. Install Sake

    brew install kattouf/sake/sake

    See other installation methods

  2. Initialize a new SakeApp:

    sake init
  3. Run your first command:

    sake hello

📖 Example Use Cases

  • 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
  • Documentation: Keep your project documentation up to date

🤝 Contributing

We welcome contributions! Whether it's:

  • 🐛 Bug Reports
  • 💡 Feature Requests
  • 📖 Documentation Improvements
  • 🔧 Code Contributions

Check out our Contribution Guide to get started.

📜 License

Sake is released under the MIT License. See the LICENSE file for details.