Initial public release v0.1.0 - Linux Wabbajack Modlist Application

Jackify provides native Linux support for Wabbajack modlist installation
   and management with automated Steam integration and Proton configuration.

   Key Features:
   - Almost Native Linux implementation (texconv.exe run via proton)
   - Automated Steam shortcut creation and Proton prefix management
   - Both CLI and GUI interfaces, with Steam Deck optimization

   Supported Games:
   - Skyrim Special Edition
   - Fallout 4
   - Fallout New Vegas
   - Oblivion, Starfield, Enderal, and diverse other games

   Technical Architecture:
   - Clean separation between frontend and backend services
   - Powered by jackify-engine 0.3.x for Wabbajack-matching modlist installation
This commit is contained in:
Omni
2025-09-05 20:46:24 +01:00
commit cd591c14e3
445 changed files with 40398 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
#!/usr/bin/env python3
import sys
import os
from pathlib import Path
# Add the src directory to the path
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
def test_path_construction():
"""Test the exact path construction that's happening in the bug."""
# Simulate the path that should be passed
install_dir_str = "/home/deck/Games/Fallout/WOD"
modlist_dir_path = Path(install_dir_str)
print(f"Original install_dir_str: {install_dir_str}")
print(f"modlist_dir_path: {modlist_dir_path}")
print(f"modlist_dir_path type: {type(modlist_dir_path)}")
# Simulate the path construction in edit_binary_working_paths
drive_prefix = "Z:"
rel_path = "Stock Game/f4se_loader.exe"
new_binary_path = f"{drive_prefix}/{modlist_dir_path}/{rel_path}".replace('\\', '/').replace('//', '/')
print(f"drive_prefix: {drive_prefix}")
print(f"rel_path: {rel_path}")
print(f"new_binary_path: {new_binary_path}")
# Check if there's any string manipulation happening
print(f"modlist_dir_path string: '{str(modlist_dir_path)}'")
print(f"modlist_dir_path parts: {list(modlist_dir_path.parts)}")
# Test with the exact path from the ModOrganizer.ini
print("\n--- Testing with actual ModOrganizer.ini path ---")
actual_path = "Z:/home/deck/Games/Fallout/WOD/D/Stock Game/f4se_loader.exe"
print(f"Actual path from ModOrganizer.ini: {actual_path}")
# Try to reconstruct this path
parts = actual_path.split('/')
print(f"Path parts: {parts}")
# The issue is that there's a "D" segment that shouldn't be there
if "D" in parts:
d_index = parts.index("D")
print(f"Found 'D' at index {d_index}: {parts[d_index]}")
print(f"Parts before 'D': {parts[:d_index]}")
print(f"Parts after 'D': {parts[d_index+1:]}")
# Reconstruct without the D
correct_parts = parts[:d_index] + parts[d_index+1:]
correct_path = '/'.join(correct_parts)
print(f"Correct path should be: {correct_path}")
if __name__ == "__main__":
test_path_construction()