Skip to content
/ Sake Public

๐Ÿถ Swift-based utility for managing project commands, inspired by Make.

License

Notifications You must be signed in to change notification settings

kattouf/Sake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿถ 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

๐Ÿค Contributing

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.

๐Ÿ“œ License

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