-
Notifications
You must be signed in to change notification settings - Fork 21
Expand file tree
/
Copy pathflake.nix
More file actions
148 lines (146 loc) · 5.09 KB
/
flake.nix
File metadata and controls
148 lines (146 loc) · 5.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
{
description = "Hivegame.com's flake to setup everything";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{
self,
nixpkgs,
rust-overlay,
flake-utils,
...
}:
flake-utils.lib.eachDefaultSystem (
system:
let
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs {
inherit system overlays;
};
nokamute = pkgs.callPackage (pkgs.fetchFromGitHub {
owner = "frisoft";
repo = "nokamute";
rev = "master";
sha256 = "sha256-7Q2VuVexug0iqBXEzHfQ/c9q7TfjL56psGbq5sU2Nw4=";
}) { };
aliases = [
(pkgs.writeShellScriptBin "server" ''
#!/usr/bin/env bash
cargo leptos watch
'')
(pkgs.writeShellScriptBin "migration" ''
#!/usr/bin/env bash
cd db;
diesel migration "$@"
cd ..
echo "You are welcome! ┬─┬ ノ( ゜-゜ノ) "
'')
(pkgs.writeShellScriptBin "fix" ''
#!/usr/bin/env bash
LEPTOS_OUTPUT_NAME="dev" cargo clippy --fix --all-features
echo "You are welcome! ⊂(◉‿◉)つ"
'')
(pkgs.writeShellScriptBin "format" ''
#!/usr/bin/env bash
leptosfmt apis -q
cargo fmt
echo $(git diff --shortstat)
echo "You are welcome! ٩( ๑╹ ꇴ╹)۶"
'')
(pkgs.writeShellScriptBin "pg-start" ''
#!/usr/bin/env bash
if [ -d ".pg" ]; then
pg_ctl -D ".pg/data" -l ".pg/postgresql.log" -o "-k $PWD/.pg/run" start
else
initdb -D ".pg/data"
mkdir ".pg/run"
pg_ctl -D ".pg/data" -l ".pg/postgresql.log" -o "-k $PWD/.pg/run" start
createuser -h localhost hive-dev && createdb -h localhost -O hive-dev hive-local
fi
echo "PotgreSQL started (log: .pg/postgresql.log)"
'')
(pkgs.writeShellScriptBin "pg-stop" ''
#!/usr/bin/env bash
pg_ctl -D "$PWD/.pg/data" -l "$PWD/.pg/postgresql.log" -o "-k $PWD/.pg/run" stop
echo "PotgreSQL stopped"
'')
(pkgs.writeShellScriptBin "database" ''
#!/usr/bin/env bash
psql postgres://hive-dev@localhost:/hive-local
'')
(pkgs.writeShellScriptBin "hive-hydra" ''
#!/usr/bin/env bash
cargo run --package hive-hydra -- --config hive-hydra/hive-hydra.yaml
'')
(pkgs.writeShellScriptBin "hydra" ''
#!/usr/bin/env bash
cargo run --package hive-hydra -- --config hive-hydra/hive-hydra.prod.yaml
'')
];
in
with pkgs;
{
devShells.default = mkShell rec {
buildInputs =
[
diesel-cli
(diesel-cli.override {
sqliteSupport = false;
mysqlSupport = false;
postgresqlSupport = true;
})
pkg-config
cacert
cargo-make
cargo
trunk
dart-sass
rustfmt
leptosfmt
postgresql
flyctl
cargo-leptos
tailwindcss_4
openssl
# nokamute # The AI used by hive-hydra - temporarily disabled due to darwin SDK issue
(rust-bin.selectLatestNightlyWith (
toolchain:
toolchain.default.override {
extensions = [
"rust-src"
"rust-analyzer"
];
targets = [ "wasm32-unknown-unknown" ];
}
))
]
++ aliases;
shellHook = ''
export CARGO_TARGET_DIR="$PWD/.cargo/target"
# Install wasm-bindgen-cli at the version matching our Cargo.lock
WASM_BINDGEN_VERSION="0.2.108"
if ! command -v wasm-bindgen &> /dev/null || [[ "$(wasm-bindgen --version 2>/dev/null | cut -d' ' -f2)" != "$WASM_BINDGEN_VERSION" ]]; then
echo "Installing wasm-bindgen-cli $WASM_BINDGEN_VERSION..."
cargo install wasm-bindgen-cli --version "$WASM_BINDGEN_VERSION" --quiet
fi
echo "Welcome to hivegame.com"
echo "'server' to start everything"
echo "'hive-hydra' to start hive-hydra for playing with bots"
echo "'hydra' to start hydra productively"
echo "'format' to make the code look nice"
echo "'pg-start' to start PosgreSQL"
echo "'migration' to 'run', 'revert', ... DB changes"
echo "'pg-stop' to stop PosgreSQL"
echo "'database' to connect to the PosgreSQL database"
'';
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs;
};
}
);
}