From 41c53121f5a69ccb70c5aac3ea61a030efc5bac1 Mon Sep 17 00:00:00 2001 From: Julien Moutinho Date: Sun, 20 Apr 2025 21:15:40 +0200 Subject: [PATCH] fix odbc.ini by putting it inside ODBCSYSINI --- flake.nix | 80 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 45 insertions(+), 35 deletions(-) diff --git a/flake.nix b/flake.nix index 83dca41..a9abce6 100644 --- a/flake.nix +++ b/flake.nix @@ -14,56 +14,66 @@ { devShells = forAllSystems ({ pkgs, system, ... }: { default = - let driverSqlite = "${pkgs.lib.getLib pkgs.unixODBCDrivers.sqlite}/lib/libsqlite3odbc.so"; in + let sqliteDB = "les4roux"; in + let sqliteDriverPath = "${pkgs.lib.getLib pkgs.unixODBCDrivers.sqlite}/lib/libsqlite3odbc.so"; in pkgs.mkShell { JAVA_HOME = pkgs.libreoffice.unwrapped.jdk; - ODBCSYSINI = pkgs.writeTextDir "odbcinst.ini" '' - [ODBC Drivers] - SQLite3Driver=Installed + ODBCSYSINI = + let + odbcsysini = pkgs.writeTextDir "odbcinst.ini" '' + [ODBC Drivers] + SQLite3=Installed - [SQLite3Driver] - Description = SQLite ODBC Driver - Driver = ${driverSqlite} - Setup = ${driverSqlite} - Threading = 2 - UsageCount=1 - FileUsage= 1 - CPTimeout= - CPReuse= - FKSupport=Yes - SyncPragma= + [SQLite3] + Description = SQLite ODBC Driver + Driver = ${sqliteDriverPath} + Setup = ${sqliteDriverPath} + Threading = 2 + UsageCount=1 + FileUsage= 1 + CPTimeout= + CPReuse= + FKSupport=Yes + SyncPragma= - # Sadly does not work: https://github.com/sqitchers/docker-sqitch/pull/16/. - [Default] - Driver=SQLite3Driver - ''; - ODBCINI = pkgs.writeText "odbc.ini" '' - [testDSN] - Description=Test DB - Driver=SQLite3Driver - Database=/home/julm/work/julminfo/sibert/test.sqlite - TraceFile=/home/julm/work/julminfo/sibert/test.log - NoCreat=No - LongNames=Yes - # DescriptionNote: optional lock timeout in milliseconds; default 100000 - #Timeout=2000 - ''; + # Sadly does not work: https://github.com/sqitchers/docker-sqitch/pull/16/. + [Default] + Driver=SQLite3 + ''; + odbcini = pkgs.writeTextDir "odbc.ini" '' + [${sqliteDB}] + Description=${sqliteDB} database + Driver=SQLite3 + NoCreat=No + LongNames=Yes + Database=${sqliteDB}.sqlite + TraceFile=/tmp/${sqliteDB}.log + # DescriptionNote: optional lock timeout in milliseconds; default 100000 + #Timeout=2000 + ''; + in pkgs.symlinkJoin { + name = "ODBCSYSINI"; + paths = [ + odbcsysini + odbcini + ]; + }; buildInputs = [ + pkgs.bat + pkgs.libreoffice pkgs.sqlite pkgs.sqlitebrowser - pkgs.libreoffice - pkgs.bat pkgs.unixODBC ]; shellHook = '' bat $ODBCSYSINI/odbcinst.ini - bat $ODBCINI + bat $ODBCSYSINI/odbc.ini export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath [pkgs.unixODBC]}:$LD_LIBRARY_PATH set -x odbcinst -j - odbcinst -q -d -n SQLite3Driver + odbcinst -q -d -n SQLite3 odbcinst -q -s -h - odbcinst -q -s -n testDSN + odbcinst -q -s -n ${sqliteDB} set +x '' # + checks.${system}.git-hooks-check.shellHook ; -- 2.47.2