2026-04-16 07:40:34 +02:00
|
|
|
{
|
|
|
|
|
description = "SharedInbox — IMAP/SMTP Flutter client";
|
|
|
|
|
|
|
|
|
|
inputs = {
|
|
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
|
|
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
|
|
|
};
|
|
|
|
|
|
2026-04-17 22:20:10 +02:00
|
|
|
outputs = { self, nixpkgs, flake-utils }:
|
2026-04-16 07:40:34 +02:00
|
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
|
|
|
let
|
2026-04-17 22:20:10 +02:00
|
|
|
pkgs = import nixpkgs { inherit system; };
|
2026-04-16 07:40:34 +02:00
|
|
|
in {
|
|
|
|
|
devShells.default = pkgs.mkShell {
|
|
|
|
|
buildInputs = with pkgs; [
|
2026-04-19 15:30:42 +02:00
|
|
|
# Java JDK — required by Gradle for Android builds
|
|
|
|
|
jdk17
|
|
|
|
|
|
2026-04-16 07:40:34 +02:00
|
|
|
# Task runner
|
|
|
|
|
go-task
|
|
|
|
|
|
2026-04-17 22:20:10 +02:00
|
|
|
# Flutter version manager — needed for host builds (task build-linux, task run)
|
2026-04-17 12:17:51 +02:00
|
|
|
fvm
|
|
|
|
|
|
2026-04-17 22:20:10 +02:00
|
|
|
# Local IMAP/SMTP dev server for integration tests
|
|
|
|
|
stalwart-mail
|
|
|
|
|
|
2026-04-18 12:05:20 +02:00
|
|
|
# Headless display for UI integration tests
|
|
|
|
|
xvfb-run # wraps Xvfb; xvfb-run --auto-servernum ...
|
|
|
|
|
|
2026-04-16 07:40:34 +02:00
|
|
|
# Utilities
|
|
|
|
|
git
|
|
|
|
|
curl
|
|
|
|
|
jq
|
|
|
|
|
sqlite
|
|
|
|
|
python3 # used by stalwart-dev/start to pick random ports
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
shellHook = ''
|
|
|
|
|
# Disable Flutter telemetry inside dev shell
|
|
|
|
|
export FLUTTER_SUPPRESS_ANALYTICS=true
|
|
|
|
|
|
|
|
|
|
echo "SharedInbox Flutter dev environment ready."
|
|
|
|
|
echo " Analyze : task analyze"
|
|
|
|
|
echo " Unit tests : task test"
|
|
|
|
|
echo " Integration : task integration"
|
|
|
|
|
echo " All checks : task check"
|
|
|
|
|
echo " Run (Linux) : task run"
|
|
|
|
|
echo " Start Stalwart : stalwart-dev/start"
|
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
}
|