Live location tracking and playback for the game "manhunt"
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 flakelight.builtinFormatters = false;
18 formatters = pkgs: let
19 prettier = "${pkgs.prettier}/bin/prettier --write .";
20 alejandra = "${pkgs.alejandra}/bin/alejandra .";
21 rustfmt = "${pkgs.rustfmt}/bin/rustfmt";
22 just = "${pkgs.just}/bin/just --fmt --unstable";
23 in {
24 "justfile" = just;
25 "*.nix" = alejandra;
26 "*.js" = prettier;
27 "*.ts" = prettier;
28 "*.jsx" = prettier;
29 "*.tsx" = prettier;
30 "*.md" = prettier;
31 "*.json" = prettier;
32 "*.rs" = rustfmt;
33 };
34
35 devShell = pkgs: let
36 buildToolsVersion = "34.0.0";
37 androidComposition = pkgs.androidenv.composeAndroidPackages {
38 platformVersions = [
39 "34"
40 "latest"
41 ];
42 systemImageTypes = ["google_apis_playstore"];
43 buildToolsVersions = [buildToolsVersion];
44 abiVersions = [
45 "armeabi-v7a"
46 "arm64-v8a"
47 "x86_64"
48 ];
49 includeNDK = true;
50 includeExtras = [
51 "extras;google;auto"
52 ];
53 };
54 in {
55 shellHook = let
56 ANDROID_HOME = "${androidComposition.androidsdk}/libexec/android-sdk";
57 in ''
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 alejandra
72 harfbuzz
73 librsvg
74 libsoup_3
75 just
76 pango
77 webkitgtk_4_1
78 openssl
79 pkg-config
80 gobject-introspection
81 nodePackages.prettier
82 (rust-bin.stable.latest.default.override {targets = ["aarch64-linux-android" "armv7-linux-androideabi" "i686-linux-android" "x86_64-linux-android"];})
83 cargo-tauri
84 nodejs
85 (android-studio.withSdk androidComposition.androidsdk)
86 ];
87 };
88 };
89}