diff --git a/PackageManger.cs b/PackageManger.cs index 53fc4a8..38d2ab5 100644 --- a/PackageManger.cs +++ b/PackageManger.cs @@ -11,6 +11,7 @@ public static class PackageManager { var dir = new DirectoryInfo(source); var file = new FileInfo(output); + if (!dir.Exists) { Console.Error.WriteLine("Source directory does not exist."); diff --git a/Program.cs b/Program.cs index 659075d..307e2e7 100644 --- a/Program.cs +++ b/Program.cs @@ -3,12 +3,12 @@ using System.CommandLine; var rootCommand = new RootCommand("The Sims 2 .s2pk Package Manager"); -var sourceOption = new Option( +var sourceOption = new Option( aliases: ["--source", "-s"], description: "Source directory containing .package files") { IsRequired = true }; -var outputOption = new Option( +var outputOption = new Option( aliases: ["--output", "-o"], description: "Destination .s2pk archive file") { IsRequired = true }; @@ -25,12 +25,12 @@ packCommand.SetHandler((source, output) => PackageManager.PackPackages(source, output); }, sourceOption, outputOption); -var packageOption = new Option( +var packageOption = new Option( aliases: ["--package", "-p"], description: "Input .s2pk archive") { IsRequired = true }; -var destinationOption = new Option( +var destinationOption = new Option( aliases: ["--destination", "-d"], description: "Destination directory (e.g., The Sims 2 Downloads folder)") { IsRequired = true }; diff --git a/README.md b/README.md index e8849cc..acb2f45 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ S2PK, or Sims 2 Package Manager, aims to provide a simple cross-platform solution to package management. +## 💡 Why This Exists + +S2PK was created to address the need for a reliable and efficient cross-platform package management system for The Sims 2 on Linux and macOS. Players on these platforms often face challenges in managing mods due to the lack of a unified solution that their Windows counterparts solved a long time ago. + ## 🛣️ Project Roadmap | Phase | Goal | Status | @@ -17,13 +21,23 @@ S2PK, or Sims 2 Package Manager, aims to provide a simple cross-platform solutio - System.CommandLine for CLI parsing (no external libraries) - Pure backend logic (no UI planned) +## Example + +```shell +s2pk pack -s ./mods -o output.s2pk +``` + +```shell +s2pk unpack -p ./output.s2pk -d "%USERPROFILE%\Documents\EA Games\The Sims 2\Downloads" +``` + ## 🗓️ Update Cycle | Type | Frequency | Notes | | ------------ | ---------------- | ---------------------------------------- | | Minor Update | Every 3–6 months | Small enhancements, non-breaking changes | | Patch Update | As needed | Bug fixes, security updates | -| Major Update | As needed | Framework upgrades, major refactors | +| Major Update[^1] | As needed | Framework upgrades, major refactors | - Reserve months: June (Mid-Year Chill) & December (End-Year Freeze) @@ -42,6 +56,10 @@ S2PK, or Sims 2 Package Manager, aims to provide a simple cross-platform solutio - Critical vulnerabilities - Framework-breaking issues +## 🔍 Footnotes + +- [^1]: At this early stage, major updates bump the minor version number. This usually involves re-targeting to the newest .NET LTS. + ## 🗒️ License I license this project under the GPL v3 license - see [LICENSE](LICENSE) for details. diff --git a/S2PK.csproj b/S2PK.csproj index ab4e733..48a4c19 100644 --- a/S2PK.csproj +++ b/S2PK.csproj @@ -6,6 +6,10 @@ 0.1.101 enable enable + Tony Bark + true + s2pk + s2pk