mirror of
https://github.com/HendrikRauh/inventree-app.git
synced 2026-01-12 19:26:19 +00:00
Update .gitignore and add flake.nix patching script for Flutter version management
This commit is contained in:
parent
0546fba37f
commit
96627adf7b
4 changed files with 89 additions and 2 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -9,6 +9,7 @@
|
||||||
.history
|
.history
|
||||||
.svn/
|
.svn/
|
||||||
.direnv
|
.direnv
|
||||||
|
flake.nix.bak
|
||||||
|
|
||||||
coverage/*
|
coverage/*
|
||||||
|
|
||||||
|
|
|
||||||
19
flake.lock
generated
19
flake.lock
generated
|
|
@ -34,10 +34,27 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-flutter": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751285371,
|
||||||
|
"narHash": "sha256-/hDU+2AUeFFu5qGHO/UyFMc4UG/x5Cw5uXO36KGTk6c=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "b9c03fbbaf84d85bb28eee530c7e9edc4021ca1b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "b9c03fbbaf84d85bb28eee530c7e9edc4021ca1b",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs",
|
||||||
|
"nixpkgs-flutter": "nixpkgs-flutter"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
|
|
|
||||||
11
flake.nix
11
flake.nix
|
|
@ -4,6 +4,7 @@
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
nixpkgs-flutter.url = "github:NixOS/nixpkgs/b9c03fbbaf84d85bb28eee530c7e9edc4021ca1b";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
|
|
@ -11,16 +12,23 @@
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
flake-utils,
|
flake-utils,
|
||||||
|
nixpkgs-flutter,
|
||||||
}:
|
}:
|
||||||
flake-utils.lib.eachDefaultSystem (
|
flake-utils.lib.eachDefaultSystem (
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
|
|
||||||
pkgs = import nixpkgs {
|
pkgs = import nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
config = {
|
config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
android_sdk.accept_license = true;
|
android_sdk.accept_license = true;
|
||||||
};
|
};
|
||||||
|
overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
flutter-pkg = import (self.inputs.nixpkgs-flutter) { inherit system; };
|
||||||
|
})
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
androidSdk =
|
androidSdk =
|
||||||
|
|
@ -69,7 +77,7 @@
|
||||||
with pkgs;
|
with pkgs;
|
||||||
[
|
[
|
||||||
# Mobile development
|
# Mobile development
|
||||||
flutter
|
pkgs.flutter-pkg.flutter
|
||||||
fvm-wrapper
|
fvm-wrapper
|
||||||
jdk17
|
jdk17
|
||||||
|
|
||||||
|
|
@ -80,6 +88,7 @@
|
||||||
# Python & task runner
|
# Python & task runner
|
||||||
python3
|
python3
|
||||||
python3Packages.invoke
|
python3Packages.invoke
|
||||||
|
jq
|
||||||
|
|
||||||
# System dependencies for Flutter on Linux
|
# System dependencies for Flutter on Linux
|
||||||
git
|
git
|
||||||
|
|
|
||||||
60
update-flutter-nix.sh
Normal file
60
update-flutter-nix.sh
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# 0. Abhängigkeiten prüfen
|
||||||
|
for cmd in jq curl sed nix; do
|
||||||
|
command -v $cmd >/dev/null 2>&1 || { echo "Fehler: $cmd nicht installiert!"; exit 1; }
|
||||||
|
done
|
||||||
|
|
||||||
|
# 1. Version aus .fvmrc extrahieren
|
||||||
|
if [ ! -f .fvmrc ]; then
|
||||||
|
echo "Fehler: .fvmrc nicht gefunden!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
FLUTTER_VERSION=$(jq -r .flutter .fvmrc)
|
||||||
|
echo "Gesuchte Flutter Version: $FLUTTER_VERSION"
|
||||||
|
|
||||||
|
# 2. Commit-Hash und Version aus Devbox-API holen
|
||||||
|
API_URL="https://search.devbox.sh/v2/pkg?name=flutter"
|
||||||
|
RELEASES_JSON=$(curl -s "$API_URL")
|
||||||
|
|
||||||
|
# Alle Versionen extrahieren und sortieren
|
||||||
|
ALL_VERSIONS=$(echo "$RELEASES_JSON" | jq -r '.releases[].version' | sort -V)
|
||||||
|
|
||||||
|
# Finde die gewünschte oder nächsthöhere Version
|
||||||
|
FOUND_VERSION=$(echo "$ALL_VERSIONS" | awk -v v="$FLUTTER_VERSION" '$0 >= v { print; exit }')
|
||||||
|
|
||||||
|
if [ -z "$FOUND_VERSION" ]; then
|
||||||
|
echo "Fehler: Keine passende Flutter-Version gefunden."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$FOUND_VERSION" != "$FLUTTER_VERSION" ]; then
|
||||||
|
echo "Hinweis: Exakte Version nicht gefunden, benutze stattdessen Version $FOUND_VERSION."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Commit-Hash für x86_64-linux extrahieren
|
||||||
|
COMMIT=$(echo "$RELEASES_JSON" | jq -r --arg v "$FOUND_VERSION" '.releases[] | select(.version==$v) | .platforms[] | select(.system=="x86_64-linux") | .commit_hash' | head -n 1)
|
||||||
|
|
||||||
|
if [ -z "$COMMIT" ] || [ "$COMMIT" == "null" ]; then
|
||||||
|
echo "Fehler: Kein Commit-Hash für Version $FOUND_VERSION und Plattform x86_64-linux gefunden."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Gefundener Commit: $COMMIT (Version: $FOUND_VERSION)"
|
||||||
|
|
||||||
|
|
||||||
|
# 3. Die flake.nix patchen (Backup anlegen)
|
||||||
|
sed -i.bak "s|nixpkgs-flutter.url = \"github:NixOS/nixpkgs/[a-f0-9]*\";|nixpkgs-flutter.url = \"github:NixOS/nixpkgs/$COMMIT\";|" flake.nix
|
||||||
|
|
||||||
|
# 4. Den Flake-Lock aktualisieren
|
||||||
|
nix flake update nixpkgs-flutter
|
||||||
|
|
||||||
|
# 5. Optional: direnv reload
|
||||||
|
if command -v direnv >/dev/null 2>&1; then
|
||||||
|
direnv reload
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Erfolgreich! Die flake.nix nutzt nun den Commit für Flutter $FLUTTER_VERSION (oder höher)."
|
||||||
Loading…
Add table
Add a link
Reference in a new issue