tomassirio / easyinstaller

It is a command-line tool that allows you to install commonly used applications with a single command. It is a Spring Boot application that uses Spring Shell to provide a command-line interface to the user. The application is designed to be extensible, so you can easily add new installers to the list of supported applications.
8 stars 3 forks source link
hacktoberfest hacktoberfest2024 noob-friendly

EASYINSTALLER-logo

EASYINSTALLER

An easy way of installing your favourite applications in one single place

last-commit repo-top-language repo-language-count


Table of Contents

Overview

Easy Installer is your Go-To application for installing your favourite applications in one single place.

It is a command-line tool that allows you to install commonly used applications with a single command. It is a Spring Boot application that uses Spring Shell to provide a command-line interface to the user. The application is designed to be extensible, so you can easily add new installers to the list of supported applications.


Features

Easy Installer was designed to extend or even replace the applications offered.

It is also Multi-platform, so you can use it on Windows, MacOS, and Linux.

[!WARNING] The application is still in its early stages, so some features may not work as expected.


Extensibility

There's a few entities easily extensible in Easy Installer:

[!IMPORTANT]
This application also implements a Default Installer in case you pick no package manager. You can find the URLs for the default installers in the application.properties file. This feature is purely experimental at the moment as it is complicated to implement for many OSs

Repository Structure

└── easyinstaller/
    ├── mvnw
    ├── mvnw.cmd
    ├── pom.xml
    └── src
        ├── main
        │   ├── kotlin
        │   │   └── com.tomassirio.easyinstaller
        │   │       ├── command
        │   │       │   ├── step   
        │   │       │   └── InstallerCommand.kt
        │   │       ├── service
        │   │       │   ├── annotation
        │   │       │   ├── impl
        │   │       │   │   ├── installer
        │   │       └───└───└────└── strategy
        ├── test
        └── resources
            └── application.properties

Getting Started

Prerequisites

Kotlin: version 1.9.24

Installation

Build the project from source:

  1. Clone the easyinstaller repository:

    ❯ git clone https://github.com/tomassirio/easyinstaller
  2. Navigate to the project directory:

    ❯ cd easyinstaller
  3. Install the required dependencies:

    ❯ ./mvnw clean install

Usage

To run the project, execute the following command:

❯ java -jar target/EasyInstaller-0.1.0.jar  

Tests

Execute the test suite using the following command:

❯ ./mvnw clean verify

[!TIP] You can use the help command to get all the available commands and their descriptions.

[!NOTE] So far the application implements a quick install and a manual one (The manual one was the one I invested the most time on)


Project Roadmap


Contributing

Contributions are welcome! Specially if you are here for Hacktoberfest 2024!

Here are several ways you can contribute:

Contributing Guidelines 1. **Fork the Repository**: Start by forking the project repository to your github account. 2. **Clone Locally**: Clone the forked repository to your local machine using a git client. ```sh git clone https://github.com/tomassirio/easyinstaller ``` 3. **Create a New Branch**: Always work on a new branch, giving it a descriptive name. ```sh git checkout -b new-feature-x ``` 4. **Make Your Changes**: Develop and test your changes locally. 5. **Commit Your Changes**: Commit with a clear message describing your updates. ```sh git commit -m 'Implemented new feature x.' ``` 6. **Push to github**: Push the changes to your forked repository. ```sh git push origin new-feature-x ``` 7. **Submit a Pull Request**: Create a PR against the original project repository. Clearly describe the changes and their motivations. 8. **Review**: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph