feat: Working sync between Navidrome & iPod

First full session of vibecoding with agents, super cool!

Signed-off-by: SindreKjelsrud <sindre@kjelsrud.dev>
This commit is contained in:
SindreKjelsrud 2025-12-21 21:18:17 +01:00
commit 758076fe32
Signed by: sidski
GPG key ID: D2BBDF3EDE6BA9A6
15 changed files with 6303 additions and 0 deletions

56
shell.nix Normal file
View file

@ -0,0 +1,56 @@
let
nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-25.05";
pkgs = import nixpkgs { config = {}; overlays = []; };
in
pkgs.mkShell {
buildInputs = with pkgs; [
rustc
cargo
gcc # cc-command for building native dependencies
pkg-config # useful for C-dependencies
openssl # if crates are dependent on openssl
openssl.dev # openssl development headers
# GUI dependencies - X11
libGL
xorg.libX11
xorg.libXcursor
xorg.libXi
xorg.libXrandr
libxkbcommon
# GUI dependencies - Wayland (for Wayland support)
wayland
];
# Set up library paths for runtime
shellHook = let
libPath = pkgs.lib.makeLibraryPath (with pkgs; [
libGL
xorg.libX11
xorg.libXcursor
xorg.libXi
xorg.libXrandr
libxkbcommon
wayland
]);
in ''
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libPath}"
echo "NaviPod Development Environment"
# Verify Rust is available
if command -v rustc &> /dev/null; then
echo " Rust $(rustc --version) is available"
fi
if command -v cargo &> /dev/null; then
echo " Cargo $(cargo --version) is available"
fi
echo ""
echo "Welcome to NaviPod development shell!"
echo "Run 'cargo build' to build the project."
echo "Run 'cargo check' to check for compilation errors."
echo "Run './target/debug/navipod-gui' to launch the GUI (from within this shell)."
'';
}