43 lines
1.1 KiB
Nix
43 lines
1.1 KiB
Nix
let
|
|
# Import nixpkgs and add the Mozilla overlay
|
|
nixpkgs = import <nixpkgs> {
|
|
overlays = [
|
|
(import (builtins.fetchTarball {
|
|
url = "https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz";
|
|
}))
|
|
];
|
|
};
|
|
in
|
|
nixpkgs.mkShell {
|
|
buildInputs = [
|
|
((nixpkgs.rustChannelOf {
|
|
channel = "stable";
|
|
date = null; # null = latest stable channel
|
|
}).rust.override {
|
|
extensions = [ "rust-src" "rust-analysis" ];
|
|
})
|
|
|
|
nixpkgs.openssl
|
|
nixpkgs.pkg-config
|
|
nixpkgs.sqlite
|
|
nixpkgs.libpq
|
|
nixpkgs.lldb
|
|
nixpkgs.libmysqlclient
|
|
];
|
|
|
|
shellHook = ''
|
|
export TMPDIR=/tmp
|
|
export PATH=$PATH:$HOME/.cargo/bin
|
|
|
|
# Ensure dynamic linker can find required libs (SQLite, OpenSSL, PostgreSQL, MySQL)
|
|
export LD_LIBRARY_PATH=${nixpkgs.openssl.out}/lib:${nixpkgs.sqlite.out}/lib:${nixpkgs.libpq.out}/lib:${nixpkgs.libmysqlclient.out}/lib:$LD_LIBRARY_PATH
|
|
|
|
|
|
# Install diesel_cli if not already installed
|
|
if ! command -v diesel >/dev/null 2>&1; then
|
|
echo "Installing diesel_cli (SQLite)..."
|
|
cargo install diesel_cli --no-default-features --features "sqlite"
|
|
fi
|
|
'';
|
|
}
|