File tree Expand file tree Collapse file tree
flake/profiles/home/daily Expand file tree Collapse file tree Original file line number Diff line number Diff line change 6060 pwndbg
6161 kdePackages . kolourpaint
6262 psmisc
63+ jess-scripts . edit-managed-file
6364 ] ;
6465}
Original file line number Diff line number Diff line change 3535 jess-scripts = {
3636 nix-conf-edit = final . callPackage ./scripts/nix-conf-edit.nix { } ;
3737 nixpkgs-print-out-paths = final . callPackage ./scripts/nixpkgs-print-out-paths.nix { } ;
38+ edit-managed-file = final . callPackage ./scripts/edit-managed-file.nix { } ;
3839 } ;
3940
4041 resetti = final . callPackage ./resetti.nix { } ;
5859 inherit ( pkgs . jess-scripts )
5960 nix-conf-edit
6061 nixpkgs-print-out-paths
62+ edit-managed-file
6163 ;
6264 } ;
6365 } ;
Original file line number Diff line number Diff line change 1+ {
2+ writeShellApplication ,
3+ vim ,
4+ ...
5+ } :
6+ writeShellApplication {
7+ name = "edit-managed-file" ;
8+
9+ runtimeInputs = [
10+ vim
11+ ] ;
12+
13+ text = ''
14+ if [ "$#" -ne 1 ]; then
15+ >&2 echo "error: usage: $0 <managed-file>"
16+ exit 1
17+ fi
18+
19+ if ! [ -f "$1" ] && ! [ -h "$1" ]; then
20+ >&2 echo "error: '$1' is not a file or symlink"
21+ exit 1
22+ fi
23+
24+ if ! [ -w "$1" ]; then
25+ >&2 echo "error: can't edit file '$1' (do you have permissions?)"
26+ exit 1
27+ fi
28+
29+ managed_file="$(realpath --no-symlinks "$1")"
30+ backup_file="'' ${managed_file}.orig"
31+
32+ >&2 echo "editing: $managed_file"
33+
34+ mv -v "$managed_file" "$backup_file"
35+ cp -v "$backup_file" "$managed_file"
36+ chmod -v +w "$managed_file"
37+
38+ "'' ${EDITOR:-vim}" "$managed_file"
39+ '' ;
40+ }
You can’t perform that action at this time.
0 commit comments