Live location tracking and playback for the game "manhunt"
at 0d6317a0a65ae80407dd3fb104e7d6c6cfa68363 87 lines 2.9 kB view raw
1{ 2 inputs = { 3 nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; 4 flakelight.url = "github:nix-community/flakelight"; 5 rust-overlay.url = "github:oxalica/rust-overlay"; 6 rust-overlay.inputs.nixpkgs.follows = "nixpkgs"; 7 }; 8 outputs = { flakelight, ... } @ inputs: 9 flakelight ./. { 10 inherit inputs; 11 withOverlays = [ inputs.rust-overlay.overlays.default ]; 12 nixpkgs.config = { 13 allowUnfree = true; 14 android_sdk.accept_license = true; 15 }; 16 17 formatters = 18 let 19 forAllTypes = cmd: types: 20 builtins.listToAttrs (builtins.map 21 (t: { 22 name = "*.${t}"; 23 value = cmd; 24 }) 25 types); 26 in 27 { 28 "*.rs" = "cd backend; cargo fmt"; 29 } 30 // (forAllTypes "prettier --write ." [ "ts" "tsx" "md" "json" ]); 31 devShell = pkgs: 32 let 33 buildToolsVersion = "34.0.0"; 34 androidComposition = pkgs.androidenv.composeAndroidPackages { 35 platformVersions = [ 36 "34" 37 "latest" 38 ]; 39 systemImageTypes = [ "google_apis_playstore" ]; 40 buildToolsVersions = [ buildToolsVersion ]; 41 abiVersions = [ 42 "armeabi-v7a" 43 "arm64-v8a" 44 "x86_64" 45 ]; 46 includeNDK = true; 47 includeExtras = [ 48 "extras;google;auto" 49 ]; 50 }; 51 in 52 { 53 shellHook = 54 let 55 ANDROID_HOME = "${androidComposition.androidsdk}/libexec/android-sdk"; 56 in 57 '' 58 export XDG_DATA_DIRS="$GSETTINGS_SCHEMAS_PATH" 59 export GIO_EXTRA_MODULES="${pkgs.dconf.lib}/lib/gio/modules:${pkgs.glib-networking}/lib/gio/modules" 60 export ANDROID_HOME=${ANDROID_HOME} 61 export NDK_HOME="${androidComposition.androidsdk}/libexec/android-sdk/ndk/${builtins.head (pkgs.lib.lists.reverseList (builtins.split "-" "${androidComposition.ndk-bundle}"))}" 62 export GRADLE_OPTS="-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_HOME}/build-tools/${buildToolsVersion}/aapt2" 63 ''; 64 packages = with pkgs; [ 65 at-spi2-atk 66 atkmm 67 cairo 68 gdk-pixbuf 69 glib 70 gtk3 71 harfbuzz 72 librsvg 73 libsoup_3 74 pango 75 webkitgtk_4_1 76 openssl 77 pkg-config 78 gobject-introspection 79 nodePackages.prettier 80 (rust-bin.selectLatestNightlyWith (toolchain: toolchain.default.override { targets = [ "aarch64-linux-android" "armv7-linux-androideabi" "i686-linux-android" "x86_64-linux-android" ]; })) 81 cargo-tauri 82 nodejs 83 (android-studio.withSdk androidComposition.androidsdk) 84 ]; 85 }; 86 }; 87}