Bluesky app fork with some witchin' additions 馃挮
witchsky.app
bluesky
fork
client
1{
2 inputs = {
3 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
4 flake-utils.url = "github:numtide/flake-utils";
5 android-nixpkgs.url = "github:tadfisher/android-nixpkgs";
6 wrangler-flake.url = "github:ryand56/wrangler";
7 };
8
9 outputs = {
10 nixpkgs,
11 flake-utils,
12 wrangler-flake,
13 android-nixpkgs,
14 ...
15 }:
16 flake-utils.lib.eachDefaultSystem (
17 system: let
18 noEmulator = (builtins.getEnv "NO_EMULATOR") == "1";
19
20 android-arch =
21 if system == "aarch64-darwin"
22 then "arm64-v8a"
23 else "x86-64";
24 android-arch-underline =
25 if system == "aarch64-darwin"
26 then "arm64-v8a"
27 else "x86_64";
28
29 pkgs = import nixpkgs {
30 inherit system;
31 config = {
32 android_sdk.accept_license = true;
33 allowUnfree = true;
34 };
35 };
36 pinnedJDK = pkgs.jdk17;
37 androidSdk = android-nixpkgs.sdk.${system} (
38 sdk:
39 with sdk;
40 [
41 build-tools-35-0-0
42 cmdline-tools-latest
43 platform-tools
44 platforms-android-36
45 sources-android-36
46 ndk-27-1-12297006
47 cmake-3-22-1
48 ]
49 ++ pkgs.lib.optionals (!noEmulator) [
50 emulator
51 sdk."system-images-android-36-google-apis-${android-arch}"
52 sdk."system-images-android-36-google-apis-playstore-${android-arch}"
53 ]
54 );
55
56 create-avd = pkgs.writeShellScriptBin "create-avd" ''
57 avdmanager create avd \
58 --name android-36 \
59 --package 'system-images;android-36;google_apis_playstore;${android-arch-underline}' \
60 --tag google_apis_playstore \
61 --device pixel_8 \
62 --force
63 '';
64 in
65 with pkgs; {
66 packages = {
67 default = callPackage ./default.nix {};
68 };
69 devShells = {
70 default = mkShell rec {
71 buildInputs = [
72 androidSdk
73 pinnedJDK
74 ];
75
76 JAVA_HOME = pinnedJDK;
77 ANDROID_HOME = "${androidSdk}/share/android-sdk";
78 ANDROID_SDK_ROOT = "${androidSdk}/share/android-sdk";
79
80
81 packages =
82 [
83 gradle_8
84
85 just
86 fastmod
87 nodejs
88 pnpm
89 crowdin-cli
90 eas-cli
91
92 bundletool
93
94 typescript
95 typescript-language-server
96
97 go
98 gopls
99
100 wrangler-flake.packages.${system}.wrangler
101 ]
102 ++ pkgs.lib.optionals (!noEmulator) [create-avd];
103
104 shellHook = ''
105 export GRADLE_USER_HOME=~/.cache/gradle
106 if [[ ${system} =~ .*-darwin ]]; then
107 export ANDROID_USER_HOME="~/.android"
108 else
109 export ANDROID_USER_HOME="''${XDG_STATE_HOME:-$HOME/.local/state}/android"
110 fi
111 export ANDROID_AVD_HOME="$ANDROID_USER_HOME/avd"
112 export GRADLE_OPTS="-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_SDK_ROOT}/build-tools/35.0.0/aapt2''${GRADLE_OPTS:+ $GRADLE_OPTS}";
113 '';
114 };
115 };
116 }
117 );
118}