Skip to content

A task runner and version manager for Node.js and Python, written in Rust!

License

Notifications You must be signed in to change notification settings

shuru-project/shuru

Repository files navigation

Shuru Logo

Shuru

A task runner and version manager for Node.js and Python, written in Rust! Shuru simplifies your development workflow by automating tasks and managing language versions.

Version License CI Status Contributors Stars Forks Open Issues Hacktoberfest

Join us in Hacktoberfest and contribute to open source!

📚 Table of Contents

🌟 Introduction

Shuru enhances productivity by offering:

  • 🔧 Task Automation: Define and run tasks effortlessly.
  • 🌐 Version Management: Built-in Node.js and Python version management.
  • 💻 Shell Completions: Enjoy auto-completion in Bash, Zsh, and Fish.

🚀 Installation

Linux and macOS

To install the shuru CLI, run:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/shuru-project/shuru/main/install.sh)"

📚 Usage

  1. Create a shuru.toml File: Define tasks and versions in the file at the project root.

    Example Configuration

    [versions]
    node = "v16.14.0"
    
    [tasks.setup]
    command = "npm install"
    
    [tasks.dev]
    command = "npm run dev"
  2. Run Tasks: Execute defined tasks using:

    shuru <COMMAND>

    Example:

    shuru setup

🛠️ Detailed Examples

Node.js Project

  1. Set up a new project and create shuru.toml as above.

  2. Install dependencies:

    shuru setup
  3. Start development:

    shuru dev

Python Project

  1. Create a shuru.toml for your Python project:

    [versions]
    python = "3.9.5"
    
    [tasks.install]
    command = "pip install -r requirements.txt"
    
    [tasks.run]
    command = "python main.py"
  2. Install dependencies:

    shuru install
  3. Run your application:

    shuru run

🤝 Community

Join our community for support and discussions:

Discord

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

🤗 Contributing

We welcome contributions! Please check our Contributing Guidelines for more information on how to get involved.