Skip to content

Commit 6d2ac58

Browse files
committed
chore: update dev-flake
1 parent 4ba3f74 commit 6d2ac58

File tree

8 files changed

+145
-160
lines changed

8 files changed

+145
-160
lines changed

.envrc

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ export NIX_USER_CONF_FILES="$PWD/dev/nix.conf"
33

44
if command -v nix >/dev/null; then
55
if nix print-dev-env --help >/dev/null 2>&1; then
6-
use flake ./dev
6+
use flake
77
else
88
use nix
9-
watch_file ./dev/flake.nix
9+
watch_file ./flake.nix
10+
watch_file ./dev/flake-parts.nix
1011
fi
1112
else
1213
echo 'The development environment is using Nix to provide all the tools, please install Nix:' >&2

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
extraPullNames: nix-community
5353

5454
- name: Check
55-
run: nix flake check ./dev
55+
run: nix flake check
5656

5757
build:
5858
strategy:

dev/flake-module.nix

+96
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
{ inputs, ... }:
2+
3+
{
4+
imports = [
5+
inputs.dev-flake.flakeModule
6+
./test-home-configuration.nix
7+
];
8+
9+
dev.name = "terlar/emacs-config";
10+
11+
perSystem =
12+
{
13+
config,
14+
pkgs,
15+
...
16+
}:
17+
{
18+
pre-commit.settings.hooks = {
19+
statix.settings.ignore = [ "lock" ];
20+
};
21+
22+
treefmt = {
23+
programs.nixfmt = {
24+
enable = true;
25+
package = pkgs.nixfmt-rfc-style;
26+
};
27+
settings.formatter.nixfmt.excludes = [ "lock/**/*.nix" ];
28+
};
29+
30+
devshells.default = {
31+
commands = [
32+
{ package = pkgs.gdb; }
33+
{
34+
name = "test-emacs-config";
35+
help = "launch bundled Emacs with configuration from source";
36+
category = "emacs";
37+
command = ''
38+
exec nix run $PRJ_ROOT
39+
'';
40+
}
41+
{
42+
package = config.packages.reloadEmacsConfig;
43+
help = "reload and launch Emacs service";
44+
category = "emacs";
45+
}
46+
{
47+
package = config.packages.updateCaches;
48+
help = "update Nix caches";
49+
category = "nix";
50+
}
51+
{
52+
name = "update-screenshots";
53+
help = "generate new screenshots";
54+
category = "emacs";
55+
command = ''
56+
exec nix run $PRJ_ROOT/dev#updateScreenshots
57+
'';
58+
}
59+
];
60+
};
61+
62+
packages = {
63+
reloadEmacsConfig = pkgs.writeShellApplication {
64+
name = "reload-emacs-config";
65+
text = ''
66+
systemctl --user restart emacs.service
67+
while ! emacsclient -a false -e t 2>/dev/null
68+
do sleep 1; done
69+
emacsclient -nc
70+
'';
71+
};
72+
73+
updateCaches = pkgs.writeShellApplication {
74+
name = "update-caches";
75+
runtimeInputs = [ pkgs.cachix ];
76+
text = ''
77+
cachix use -O . nix-community
78+
cachix use -O . terlar
79+
'';
80+
};
81+
82+
updateScreenshots = pkgs.writeShellApplication {
83+
name = "update-screenshots";
84+
runtimeInputs = [
85+
pkgs.xorg.lndir
86+
config.packages.emacs-env
87+
];
88+
text = ''
89+
EMACS_DIR="$(mktemp -td emacs.XXXXXXXXXX)"
90+
lndir -silent ${config.packages.emacs-config} "$EMACS_DIR"
91+
emacs -fs --init-directory "$EMACS_DIR" --load ${./screenshots.el} --eval '(kill-emacs)'
92+
'';
93+
};
94+
};
95+
};
96+
}

dev/flake.lock

+3-24
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dev/flake.nix

+4-108
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
{
2-
description = "Development environment";
2+
description = "Dependencies for development purposes";
33

44
inputs = {
5-
flake-parts = {
6-
url = "github:hercules-ci/flake-parts";
7-
inputs.nixpkgs-lib.follows = "nixpkgs";
8-
};
5+
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
6+
97
dev-flake = {
108
url = "github:terlar/dev-flake";
119
inputs.nixpkgs.follows = "nixpkgs";
1210
};
13-
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
1411
home-manager = {
1512
url = "github:nix-community/home-manager";
1613
inputs.nixpkgs.follows = "nixpkgs";
@@ -21,106 +18,5 @@
2118
};
2219
};
2320

24-
outputs =
25-
inputs:
26-
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
27-
systems = [ "x86_64-linux" ];
28-
29-
imports = [
30-
inputs.dev-flake.flakeModule
31-
./test-home-configuration.nix
32-
];
33-
34-
dev = {
35-
name = "terlar/emacs-config";
36-
rootSrc = ../.;
37-
};
38-
39-
perSystem =
40-
{
41-
config,
42-
pkgs,
43-
rootFlake',
44-
...
45-
}:
46-
{
47-
pre-commit.settings.hooks = {
48-
statix.settings.ignore = [ "lock" ];
49-
};
50-
51-
treefmt = {
52-
programs.nixfmt = {
53-
enable = true;
54-
package = pkgs.nixfmt-rfc-style;
55-
};
56-
settings.formatter.nixfmt.excludes = [ "lock/**/*.nix" ];
57-
};
58-
59-
devshells.default = {
60-
commands = [
61-
{ package = pkgs.gdb; }
62-
{
63-
name = "test-emacs-config";
64-
help = "launch bundled Emacs with configuration from source";
65-
category = "emacs";
66-
command = ''
67-
exec nix run $PRJ_ROOT
68-
'';
69-
}
70-
{
71-
package = config.packages.reloadEmacsConfig;
72-
help = "reload and launch Emacs service";
73-
category = "emacs";
74-
}
75-
{
76-
package = config.packages.updateCaches;
77-
help = "update Nix caches";
78-
category = "nix";
79-
}
80-
{
81-
name = "update-screenshots";
82-
help = "generate new screenshots";
83-
category = "emacs";
84-
command = ''
85-
exec nix run $PRJ_ROOT/dev#updateScreenshots
86-
'';
87-
}
88-
];
89-
};
90-
91-
packages = {
92-
reloadEmacsConfig = pkgs.writeShellApplication {
93-
name = "reload-emacs-config";
94-
text = ''
95-
systemctl --user restart emacs.service
96-
while ! emacsclient -a false -e t 2>/dev/null
97-
do sleep 1; done
98-
emacsclient -nc
99-
'';
100-
};
101-
102-
updateCaches = pkgs.writeShellApplication {
103-
name = "update-caches";
104-
runtimeInputs = [ pkgs.cachix ];
105-
text = ''
106-
cachix use -O . nix-community
107-
cachix use -O . terlar
108-
'';
109-
};
110-
111-
updateScreenshots = pkgs.writeShellApplication {
112-
name = "update-screenshots";
113-
runtimeInputs = [
114-
pkgs.xorg.lndir
115-
rootFlake'.packages.emacs-env
116-
];
117-
text = ''
118-
EMACS_DIR="$(mktemp -td emacs.XXXXXXXXXX)"
119-
lndir -silent ${rootFlake'.packages.emacs-config} "$EMACS_DIR"
120-
emacs -fs --init-directory "$EMACS_DIR" --load ${./screenshots.el} --eval '(kill-emacs)'
121-
'';
122-
};
123-
};
124-
};
125-
};
21+
outputs = _: { };
12622
}

dev/test-home-configuration.nix

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
toplevel@{ self, ... }:
1+
{ inputs, config, ... }:
22
let
3-
inherit (toplevel.config.dev) rootFlake;
3+
rootConfig = config;
44
in
55
{
66
transposition.homeConfigurations.adHoc = true;
77

88
perSystem =
99
{ config, pkgs, ... }:
1010
{
11-
homeConfigurations = self.inputs.home-manager.lib.homeManagerConfiguration {
11+
homeConfigurations = inputs.home-manager.lib.homeManagerConfiguration {
1212
inherit pkgs;
1313

1414
modules = [
15-
rootFlake.homeManagerModules.emacsConfig
15+
rootConfig.flake.homeManagerModules.emacsConfig
1616
{
17-
nixpkgs.overlays = [ rootFlake.overlays.default ];
17+
nixpkgs.overlays = [ rootConfig.flake.overlays.default ];
1818

1919
home = {
2020
stateVersion = "22.05";

flake.lock

+9-18
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)