@@ -37,20 +37,28 @@ def GetDuckdbHeaders():
3737 path = os .environ .get ("DUCKDB_HEADERS" )
3838 if path :
3939 return path
40- print ("Error: DUCKDB_HEADERS environment variable is not set." )
41- print ()
42- print ("To install DuckDB C headers, run:" )
43- print ()
44- print (" mkdir -p ~/.logica/duckdb_headers && cd ~/.logica/duckdb_headers \\ " )
45- print (" && curl -LO https://github.com/duckdb/duckdb/releases/download/"
46- "v1.3.1/libduckdb-osx-universal.zip \\ " )
47- print (" && unzip -o libduckdb-osx-universal.zip && rm -f libduckdb-osx-universal.zip \\ " )
48- print (" && curl -LO https://raw.githubusercontent.com/duckdb/duckdb/"
49- "v1.3.1/src/include/duckdb_extension.h" )
40+ default_path = os .path .expanduser ("~/.logica/duckdb_headers" )
41+ if os .path .exists (os .path .join (default_path , "duckdb_extension.h" )):
42+ return default_path
43+ import duckdb
44+ ver = duckdb .__version__
45+ plat = _detect_platform ()
46+ if "osx" in plat :
47+ lib_zip = f"libduckdb-osx-universal.zip"
48+ elif "linux" in plat and "aarch64" in plat :
49+ lib_zip = f"libduckdb-linux-aarch64.zip"
50+ else :
51+ lib_zip = f"libduckdb-linux-amd64.zip"
52+ print ("Error: DuckDB C headers not found." )
5053 print ()
51- print ("Then add to your shell profile :" )
54+ print ("To install, run :" )
5255 print ()
53- print (" export DUCKDB_HEADERS=~/.logica/duckdb_headers" )
56+ print (f" mkdir -p ~/.logica/duckdb_headers && cd ~/.logica/duckdb_headers \\ " )
57+ print (f" && curl -LO https://github.com/duckdb/duckdb/releases/download/"
58+ f"v{ ver } /{ lib_zip } \\ " )
59+ print (f" && unzip -o { lib_zip } && rm -f { lib_zip } \\ " )
60+ print (f" && curl -LO https://raw.githubusercontent.com/duckdb/duckdb/"
61+ f"v{ ver } /src/include/duckdb_extension.h" )
5462 sys .exit (1 )
5563
5664
0 commit comments