All checks were successful
Restart Website Service / restart_service (push) Successful in 29s
79 lines
2.1 KiB
Nix
79 lines
2.1 KiB
Nix
{
|
|
description = "Flake for mc rust proxy";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
|
rust-overlay = {
|
|
url = "github:oxalica/rust-overlay";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
rust-overlay,
|
|
}: let
|
|
# rust-overlay = import rust-overlay;
|
|
system = "x86_64-linux";
|
|
pkgs =
|
|
import nixpkgs
|
|
{
|
|
inherit system;
|
|
overlays = [rust-overlay.overlays.default];
|
|
};
|
|
in {
|
|
devShells.${system}.default = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
rust-bin.nightly.latest.default
|
|
rust-analyzer
|
|
];
|
|
|
|
# shellHook = ''
|
|
# echo "Hello from nix dev shell"
|
|
# '';
|
|
};
|
|
formatter.${system} = pkgs.alejandra;
|
|
packages.${system}.default = pkgs.rustPlatform.buildRustPackage rec {
|
|
pname = "webbisitey-${version}";
|
|
version = "0.1.0";
|
|
|
|
src = ./src/..;
|
|
runtime = ./public;
|
|
|
|
# Cargo cant download dependencies at build time, so this downloads them through nix
|
|
cargoDeps = pkgs.rustPlatform.importCargoLock {
|
|
lockFile = "${src}/Cargo.lock";
|
|
};
|
|
|
|
# we need rust to compile
|
|
nativeBuildInputs = [
|
|
pkgs.makeWrapper
|
|
pkgs.rust-bin.nightly.latest.default
|
|
];
|
|
|
|
# build the thing
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
cargo build -r
|
|
mkdir -p $out/bin
|
|
cp target/release/webbisitey $out/bin
|
|
runHook postBuild
|
|
'';
|
|
|
|
# move the files
|
|
installPhase = ''
|
|
makeWrapper $out/bin/webbisitey $out/bin/webbisitey-wrapped --run 'cd $(dirname $0)'; # im too lazy to add a path argument so cd into the correct folder so it can serve files.
|
|
cp -r $runtime $out/bin/public
|
|
substituteInPlace $out/bin/public/index.html --replace "{{{VERSION}}}" "Built $(date +%Y-%m-%d\ %H:%M:%S)"
|
|
'';
|
|
|
|
meta = {
|
|
description = "Website server backend";
|
|
license = pkgs.lib.licenses.mit;
|
|
mainProgram = "webbisitey-wrapped"; # we want to run the wrapped version
|
|
};
|
|
};
|
|
};
|
|
}
|