diff --git a/ops/nixos/lib/common.nix b/ops/nixos/lib/common.nix index 8a530417f6..25340a403a 100644 --- a/ops/nixos/lib/common.nix +++ b/ops/nixos/lib/common.nix @@ -3,8 +3,6 @@ let inherit (lib) mkDefault; in { - imports = [ ./hgrc.nix ]; - hardware.enableRedistributableFirmware = true; nix = { @@ -71,4 +69,8 @@ in kernel.sysctl."net.ipv4.tcp_congestion_control" = "bbr"; kernel.sysctl."net.core.default_qdisc" = "fq_codel"; }; + + system.activationScripts.lukegb-hgrc = lib.stringAfter [ "users" "groups" ] '' + ln -sfn ${./hgrc} /home/lukegb/.hgrc + ''; } diff --git a/ops/nixos/lib/hgrc b/ops/nixos/lib/hgrc new file mode 100644 index 0000000000..8c86c6378c --- /dev/null +++ b/ops/nixos/lib/hgrc @@ -0,0 +1,52 @@ +[ui] +username = Luke Granger-Brown +interface = curses +tweakdefaults = True +merge = internal:merge3 + +[alias] +log = log --template lukegblogshort --graph +xl = log -r 'smartlog()' + +[revsetalias] +# We're interested in the current commit, and any non-extinct commits in the draft or secret phases. +smartlogstart() = . | ((draft() | secret()) - extinct()) +# Now expand smartlogstart to go up to the parent public commit. +publichead(r1) = ancestors(r1) - (descendants(public(), 1) and public()) +smartlogstart() = (parents(not public()) or not public() or . or head()) and (not obsolete() or unstable()^) and not closed() +smartlog() = publichead(smartlogstart())::smartlogstart() | smartlogstart() + +[color] +mode = terminfo + +custom.rev = green bold +custom.revprefix = green bold inverse +custom.author = red +custom.currentcommit_message = magenta +custom.bookmarks = bold orange +custom.topics = bold orange +custom.date = lightyellow +custom.branch_tip = yellow + +color.orange = 202 +color.lightyellow = 191 + +[templates] +lukegblogshort = {separate(' ', label('custom.rev', lukegbnode), label('custom.date', lukegbdate), label('custom.author', lukegbauthor), label('custom.branch_tip', ifcontains(rev, revset(branch), branch, '')), label('custom.bookmarks', bookmarks), label('custom.topics', topics), label(ifcontains(rev, revset('.'), 'custom.currentcommit_message', 'custom.message'), lukegbmsg))}\n +lukegbdate = {date|age} +lukegbmsg = {desc|firstline} +lukegbcopybarain = {sub('^noreply\+([^@]+)@lukegb.com$', 'copybara:\\1', author|email)} +lukegbcopybara = {ifcontains(lukegbcopybarain, '@', "", lukegbcopybarain)} +lukegbauthor = {ifeq('hg@lukegb.com', author|email, 'lukegb', if(lukegbcopybara, lukegbcopybara, author|email))} +lukegbnode = {label('custom.revprefix', lukegbnodesh)}{lukegbnodelng} +lukegbnodesh = {node|shortest} +lukegbnodelng = {sub('^{lukegbnodesh}', "", '{node|short}')} + +[extensions] +histedit = +rebase = +strip = +remotenames = +amend = +evolve = +topic = diff --git a/ops/nixos/lib/hgrc.nix b/ops/nixos/lib/hgrc.nix deleted file mode 100644 index 2a93c38e99..0000000000 --- a/ops/nixos/lib/hgrc.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ pkgs, lib, ... }: -let - hgrcPkg = pkgs.writeText "lukegb-hgrc" '' - [ui] - username = Luke Granger-Brown - interface = curses - tweakdefaults = True - merge = internal:merge3 - - [alias] - log = log --template lukegblogshort --graph - xl = log -r 'smartlog()' - - [revsetalias] - # We're interested in the current commit, and any non-extinct commits in the draft or secret phases. - smartlogstart() = . | ((draft() | secret()) - extinct()) - # Now expand smartlogstart to go up to the parent public commit. - publichead(r1) = ancestors(r1) - (descendants(public(), 1) and public()) - smartlogstart() = (parents(not public()) or not public() or . or head()) and (not obsolete() or unstable()^) and not closed() - smartlog() = publichead(smartlogstart())::smartlogstart() | smartlogstart() - - [color] - mode = terminfo - - custom.rev = green bold - custom.revprefix = green bold inverse - custom.author = red - custom.currentcommit_message = magenta - custom.bookmarks = bold orange - custom.date = lightyellow - - color.orange = 202 - color.lightyellow = 191 - - [templates] - lukegblogshort = {label('custom.rev', lukegbnode)} {label('custom.date', lukegbdate)} {label('custom.author', lukegbauthor)} {label(ifcontains(rev, revset('.'), 'custom.currentcommit_message', 'custom.message'), lukegbmsg)} {label('custom.bookmarks', bookmarks)}\n - lukegbdate = {date|age} - lukegbmsg = {desc|firstline} - lukegbcopybarain = {sub('^noreply\+([^@]+)@lukegb.com$', 'copybara:\\1', author|email)} - lukegbcopybara = {ifcontains(lukegbcopybarain, '@', "", lukegbcopybarain)} - lukegbauthor = {ifeq('hg@lukegb.com', author|email, 'lukegb', if(lukegbcopybara, lukegbcopybara, author|email))} - lukegbnode = {label('custom.revprefix', lukegbnodesh)}{lukegbnodelng} - lukegbnodesh = {node|shortest} - lukegbnodelng = {sub('^{lukegbnodesh}', "", '{node|short}')} - - [extensions] - histedit = - rebase = - strip = - remotenames = - amend = - evolve = - topic = - ''; -in -{ - system.activationScripts.lukegb-hgrc = lib.stringAfter [ "users" "groups" ] '' - ln -sfn ${hgrcPkg} /home/lukegb/.hgrc - ''; -}