2 description = "Nix Flake to use LibreOffice Base with an SQLite database";
4 nixpkgs.url = "flake:nixpkgs";
8 lib = inputs.nixpkgs.lib;
9 forAllSystems = f: lib.genAttrs lib.systems.flakeExposed (system: f rec {
11 pkgs = inputs.nixpkgs.legacyPackages.${system};
15 devShells = forAllSystems ({ pkgs, system, ... }: {
17 let sqliteDB = "les4roux"; in
18 let sqliteDriverPath = "${pkgs.lib.getLib pkgs.unixODBCDrivers.sqlite}/lib/libsqlite3odbc.so"; in
20 JAVA_HOME = pkgs.libreoffice.unwrapped.jdk;
23 odbcsysini = pkgs.writeTextDir "odbcinst.ini" ''
28 Description = SQLite ODBC Driver
29 Driver = ${sqliteDriverPath}
30 Setup = ${sqliteDriverPath}
39 # Sadly does not work: https://github.com/sqitchers/docker-sqitch/pull/16/.
43 odbcini = pkgs.writeTextDir "odbc.ini" ''
45 Description=${sqliteDB} database
49 Database=${sqliteDB}.sqlite
50 TraceFile=/tmp/${sqliteDB}.log
51 # DescriptionNote: optional lock timeout in milliseconds; default 100000
69 bat $ODBCSYSINI/odbcinst.ini
70 bat $ODBCSYSINI/odbc.ini
71 export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath [pkgs.unixODBC]}:$LD_LIBRARY_PATH
74 odbcinst -q -d -n SQLite3
76 odbcinst -q -s -n ${sqliteDB}
78 '' # + checks.${system}.git-hooks-check.shellHook