Skip to content

Commit

Permalink
Switch to pnpm workspaces, scripts, reorganize, and format!
Browse files Browse the repository at this point in the history
  • Loading branch information
RedstoneWizard08 committed Sep 5, 2024
1 parent 8d3da38 commit 5cf7527
Show file tree
Hide file tree
Showing 132 changed files with 14,019 additions and 11,964 deletions.
13 changes: 7 additions & 6 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

title: ""
labels: ""
assignees: ""
---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
Expand All @@ -24,8 +24,9 @@ A clear and concise description of what you expected to happen.
If applicable, add screenshots to help explain your problem.

**System Info (please complete the following information):**
- OS: [e.g. Windows 11]
- Version [e.g. 22]

- OS: [e.g. Windows 11]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
7 changes: 3 additions & 4 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

title: ""
labels: ""
assignees: ""
---

**Is your feature request related to a problem? Please describe.**
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ jobs:
- name: Run conf
if: matrix.os == 'windows-latest'
run: .\apps\gui\genconf.ps1

- name: Run primsa
if: matrix.os != 'windows-latest'
run: cargo prisma generate
Expand Down
8 changes: 8 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
node_modules
*.md
pnpm-lock.yaml
packages/api/src/bindings.ts
target
logs
build
.svelte-kit
2 changes: 1 addition & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"tabWidth": 4
}
}
107 changes: 55 additions & 52 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@

Wormhole's architecture will be as follows:

|---> [Frontend](#frontend)
```
|---> [Frontend]
|
[Backend](#backend) ------|---> [Query Service](#query-service)
[Backend] ------|---> [Query Service]
|
|---> [Database](#database)
|---> [Database]
```

## Backend

Expand All @@ -20,53 +22,53 @@ The frontend will either be the CLI or the GUI.
The GUI is powered by Tauri, and uses the SvelteKit framework to do its rendering logic.
The basic flow will be:

- Home
- Game list
- [Game]
- Instances
- [Instance]
- Manage mods:
- Browse & add mods
- Remove mods based on a list
- List contains:
- Mod name
- File name
- File size
- Modified date
- Update description
- View log outputs
- Manage instance-specific settings
- Create
- Instance created
- Redirect to its page
- Settings
- Change game path
- Log in to game accounts
- Settings
- Home
- Game list
- [Game]
- Instances
- [Instance]
- Manage mods:
- Browse & add mods
- Remove mods based on a list
- List contains:
- Mod name
- File name
- File size
- Modified date
- Update description
- View log outputs
- Manage instance-specific settings
- Create
- Instance created
- Redirect to its page
- Settings
- Change game path
- Log in to game accounts
- Settings

For the CLI, there will be a few commands:

NOTE: `wh` is an alias for `wormhole`.

- `wh version` - Print version information
- `wh gui` - Open the GUI version
- `wh game list` - List installed games
- `wh game detect` - Detect installed games
- `wh game remote`- List supported games
- `wh game install [game]` - Install a game (using the proper launcher)
- `wh game uninstall [game]` - Uninstall a game (using the proper launcher)
- `wh game info [game]` - Print information about a game
- `wh inst(ance) [game] (list)` - List instances
- `wh inst [game] add` - Open a prompt interface to create a new instance
- `wh inst [game] del [name]` - Remove an instance
- `wh inst [game] mods [name]` - List mods for an instance
- `wh inst [game] mods [name] add [mod]` - Add a mod to an instance
- `wh inst [game] mods [name] del [mod]` - Remove a mod from an instance
- `wh inst [game] mods [name] update ([mod]...)` - Update all mods for an instance
- `wh update` - Check for updates
- `wh cache info` - Get information about cache usage
- `wh cache prune` - Prune cached files
- `wh reset` - Reset and remove all instances and installed games, clearing all data.
- `wh version` - Print version information
- `wh gui` - Open the GUI version
- `wh game list` - List installed games
- `wh game detect` - Detect installed games
- `wh game remote`- List supported games
- `wh game install [game]` - Install a game (using the proper launcher)
- `wh game uninstall [game]` - Uninstall a game (using the proper launcher)
- `wh game info [game]` - Print information about a game
- `wh inst(ance) [game] (list)` - List instances
- `wh inst [game] add` - Open a prompt interface to create a new instance
- `wh inst [game] del [name]` - Remove an instance
- `wh inst [game] mods [name]` - List mods for an instance
- `wh inst [game] mods [name] add [mod]` - Add a mod to an instance
- `wh inst [game] mods [name] del [mod]` - Remove a mod from an instance
- `wh inst [game] mods [name] update ([mod]...)` - Update all mods for an instance
- `wh update` - Check for updates
- `wh cache info` - Get information about cache usage
- `wh cache prune` - Prune cached files
- `wh reset` - Reset and remove all instances and installed games, clearing all data.

The CLI will be installed alongside the GUI.

Expand All @@ -76,13 +78,14 @@ The Query Service manages mod sources and indexing. This handles searching for m
retaining metadata, and much more.

Mod sources:
- Spacedock (supported)
- CKAN (WIP) ([crate](https://crates.io/crates/ckandex))
- CurseForge (planned)
- Modrinth (planned)
- Thunderstore (planned)
- Nexus Mods (planned*)
- More?**

- Spacedock (supported)
- CKAN (WIP) ([crate](https://crates.io/crates/ckandex))
- CurseForge (planned)
- Modrinth (planned)
- Thunderstore (planned)
- Nexus Mods (planned\*)
- More?\*\*

\* Nexus mods is dependent on the developer friendliness and capability of its API.
\*\* More can be suggested! Go to the repository discussions tab and suggest there!
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

```js
// TODO
```
```
142 changes: 71 additions & 71 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,71 +1,71 @@
# Wormhole

![Lines of code](https://tokei.rs/b1/github/RedstoneWizard08/Wormhole?category=code&label=lines+of+code&style=flat-square)
![GitHub all releases](https://img.shields.io/github/downloads/RedstoneWizard08/Wormhole/total?style=flat-square)
[![crates.io (common)](https://img.shields.io/crates/v/wormhole-common?label=crates.io%20%28common%29&style=flat-square)](https://crates.io/crates/wormhole-common)
[![crates.io (cli)](https://img.shields.io/crates/v/wormhole-cli?label=crates.io%20%28cli%29&style=flat-square)](https://crates.io/crates/wormhole-cli)

[Download](https://nightly.link/RedstoneWizard08/Wormhole/workflows/build/main)

A centralized multi-game mod and modpack manager and launcher, supporting Steam,
Minecraft, and the Private Division launcher.

[API Documentation](https://docs.rs/wormhole-common)

## Features

- A fully featured mod manager and installer.
- Supports many different games.
- Full CurseForge integration.
- Full Modrinth integration.
- Full SpaceDock integration.
- Full CKAN integration (See: https://github.com/RedstoneWizard08/CKANDex)
- Available for many platforms.
- Easy-to-use UI.
- Blazingly fast.
- Super memory-efficient.

## Roadmap

- [x] Run udeps
- [ ] Mod deletion
- [x] Support for KSP 2
- [x] Support for KSP 1
- [x] Support for Minecraft
- [ ] Support for other suggested games.
- [x] Support for Windows, Linux, and MacOS
- [x] Support for any Steam library location
- [x] Support for any Epic Games library location
- [x] Support for Private Division launcher
- [x] Mod installation & browsing from SpaceDock
- [x] Mod installation & browsing from CKAN
- [x] Mod installation & browsing from CurseForge
- [x] Mod installation & browsing from Modrinth
- [ ] Modpack installation & browsing from SpaceDock
- [ ] Modpack installation & browsing from CKAN
- [ ] Modpack installation & browsing from CurseForge
- [ ] Modpack installation & browsing from Modrinth
- [x] GUI app
- [x] Full instances support
- [x] Friendly UI
- [x] Fast UI
- [x] 100% Open Source
- [ ] CLI app
- [ ] Memory & CPU settings
- [ ] General settings
- [ ] Network limiting settings
- [ ] Mod config editor
- [ ] Mod dependency resolution & installation
- [ ] Mod conflict resolution (KSP 1 & KSP 2)
- [ ] Game version compatibility filter
- [ ] Game log viewer
- [ ] Modpack export & management
- [ ] Modpack creator & editor (CLI)

## History

Wormhole was originally known as the SpaceWarp Installer, and then @Rexicon226 and
@RedstoneWizard08 decided to expand it out into a fully fledged game launcher and
mod manager for KSP 1 and KSP 2. After about 6 months, @RedstoneWizard08 then decided
to expand it out into a general mod manager and game launcher to support many other
games (which can be suggested via issues).
# Wormhole

![Lines of code](https://tokei.rs/b1/github/RedstoneWizard08/Wormhole?category=code&label=lines+of+code&style=flat-square)
![GitHub all releases](https://img.shields.io/github/downloads/RedstoneWizard08/Wormhole/total?style=flat-square)
[![crates.io (common)](https://img.shields.io/crates/v/wormhole-common?label=crates.io%20%28common%29&style=flat-square)](https://crates.io/crates/wormhole-common)
[![crates.io (cli)](https://img.shields.io/crates/v/wormhole-cli?label=crates.io%20%28cli%29&style=flat-square)](https://crates.io/crates/wormhole-cli)

[Download](https://nightly.link/RedstoneWizard08/Wormhole/workflows/build/main)

A centralized multi-game mod and modpack manager and launcher, supporting Steam,
Minecraft, and the Private Division launcher.

[API Documentation](https://docs.rs/wormhole-common)

## Features

- A fully featured mod manager and installer.
- Supports many different games.
- Full CurseForge integration.
- Full Modrinth integration.
- Full SpaceDock integration.
- Full CKAN integration (See: https://github.com/RedstoneWizard08/CKANDex)
- Available for many platforms.
- Easy-to-use UI.
- Blazingly fast.
- Super memory-efficient.

## Roadmap

- [x] Run udeps
- [ ] Mod deletion
- [x] Support for KSP 2
- [x] Support for KSP 1
- [x] Support for Minecraft
- [ ] Support for other suggested games.
- [x] Support for Windows, Linux, and MacOS
- [x] Support for any Steam library location
- [x] Support for any Epic Games library location
- [x] Support for Private Division launcher
- [x] Mod installation & browsing from SpaceDock
- [x] Mod installation & browsing from CKAN
- [x] Mod installation & browsing from CurseForge
- [x] Mod installation & browsing from Modrinth
- [ ] Modpack installation & browsing from SpaceDock
- [ ] Modpack installation & browsing from CKAN
- [ ] Modpack installation & browsing from CurseForge
- [ ] Modpack installation & browsing from Modrinth
- [x] GUI app
- [x] Full instances support
- [x] Friendly UI
- [x] Fast UI
- [x] 100% Open Source
- [ ] CLI app
- [ ] Memory & CPU settings
- [ ] General settings
- [ ] Network limiting settings
- [ ] Mod config editor
- [ ] Mod dependency resolution & installation
- [ ] Mod conflict resolution (KSP 1 & KSP 2)
- [ ] Game version compatibility filter
- [ ] Game log viewer
- [ ] Modpack export & management
- [ ] Modpack creator & editor (CLI)

## History

Wormhole was originally known as the SpaceWarp Installer, and then @Rexicon226 and
@RedstoneWizard08 decided to expand it out into a fully fledged game launcher and
mod manager for KSP 1 and KSP 2. After about 6 months, @RedstoneWizard08 then decided
to expand it out into a general mod manager and game launcher to support many other
games (which can be suggested via issues).
30 changes: 15 additions & 15 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# Security Policy

## Supported Versions

| Version | Supported |
|--------------|--------------------|
| < 1.0 | :x: |
| 1.x.x | :white_check_mark: |
| 2.x.x (beta) | :white_check_mark: |

## Reporting a Vulnerability

To report a vulnerability, please head to the issues section
and create one describing the issue. We will try to fix it
as soon as possible. Thanks!
# Security Policy

## Supported Versions

| Version | Supported |
| ------------ | ------------------ |
| < 1.0 | :x: |
| 1.x.x | :white_check_mark: |
| 2.x.x (beta) | :white_check_mark: |

## Reporting a Vulnerability

To report a vulnerability, please head to the issues section
and create one describing the issue. We will try to fix it
as soon as possible. Thanks!
Loading

0 comments on commit 5cf7527

Please sign in to comment.