User:SigmaSquadron/Template:Evaluate: Difference between revisions

No edit summary
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Proposal ==
Alter the [[Template:Evaluate]] to support more commands than just <code>switch</code> by providing the optional attribute <code>action</code>. This change is backwards compatible and requires no changes to existing template calls.
== About ==
This template is used to remind end-users that they need to rebuild for the changes to take effect. The optional attribute <code>action</code> can be used to define the subcommand suggested by the tip.
== Usage ==
Default <code>Evaluate</code> Box:
<pre>
<nowiki>{{Evaluate}}</nowiki>
</pre>
Boot <code>Evaluate</code> Box:
<pre>
<pre>
<nowiki>{{Evaluate|action=boot}}</nowiki>
</pre>
Test <code>Evaluate</code> Box:
<pre>
<nowiki>{{Evaluate|action=test}}</nowiki>
</pre>
== Example ==
Default <code>Evaluate</code> Box: (Called without action)
{{Tip|1=In order to '''affect''' your NixOS system by your nix-language-specific changes you must first '''evaluate''' it:{{Commands|$ nixos-rebuild switch --use-remote-sudo}}}}
Boot <code>Evaluate</code> Box:
{{Tip|1=In order to '''affect''' your NixOS system by your nix-language-specific changes you must first '''evaluate''' it:{{Commands|$ nixos-rebuild boot --use-remote-sudo}}Then, reboot:{{Commands|$ systemctl reboot}}}}
Test <code>Evaluate</code> Box:
{{Tip|1=In order to '''affect''' your NixOS system by your nix-language-specific changes you must first '''evaluate''' it:{{Commands|$ nixos-rebuild test --use-remote-sudo}}'''Remember:''' any changes evaluated through <code>nixos-rebuild test</code> '''will not''' persist upon reboot.}}
== Potential Issues ==
* You could call some other <nowiki>{{{action}}}</nowiki>, like so: <nowiki>{{Evaluate|action=list-generations}}</nowiki>, and the message about evaluating your configuration would no longer make any sense. I expect editors to know better than that though.
* This could be rewritten as an anonymous tag with just <nowiki>{{Evaluate|boot}}</nowiki> by using <nowiki>{{{1}}}</nowiki> instead of <nowiki>{{{action}}}</nowiki>. I personally dislike this alternative syntax, but it may be preferable to editors.
* The usage of <code>--use-remote-sudo</code> means that the command wouldn't work for those not using <code>sudo</code>. However, there is the tiny benefit that the evaluation and build process is no longer called by the root user, which may be helpful for those using flake-based evaluation. Also, it can point users on the right path when they begin to build systems remotely.
== Code ==
<syntaxhighlight lang=html>
<noinclude>{{DISPLAYTITLE:Template:evaluate}}
<noinclude>{{DISPLAYTITLE:Template:evaluate}}


Line 9: Line 54:
Default <code>Evaluate</code> Box:
Default <code>Evaluate</code> Box:


<pre>
<nowiki>{{Evaluate}}</nowiki>
<nowiki>{{Evaluate}}</nowiki>
</pre>


Boot <code>Evaluate</code> Box:
Boot <code>Evaluate</code> Box:


<nowiki>{{Evaluate|boot}}</nowiki>
<pre>
<nowiki>{{Evaluate|action=boot}}</nowiki>
</pre>
 


Test <code>Evaluate</code> Box:
Test <code>Evaluate</code> Box:


<nowiki>{{Evaluate|boot}}</nowiki>
<pre>
<nowiki>{{Evaluate|action=test}}</nowiki>
</pre>


== Example ==
== Example ==
Line 31: Line 83:
</noinclude><includeonly>{{Tip
</noinclude><includeonly>{{Tip
|1=In order to '''affect''' your NixOS system by your nix-language-specific changes you must first '''evaluate''' it:{{Commands|$ nixos-rebuild {{{action|switch}}} --use-remote-sudo}}{{#ifeq: boot | {{{action}}} | Then, reboot:{{Commands|$ systemctl reboot}}}}{{#ifeq: test | {{{action}}} | '''Remember:''' any changes evaluated through <code>nixos-rebuild test</code> '''will not''' persist upon reboot.}}}}</includeonly>
|1=In order to '''affect''' your NixOS system by your nix-language-specific changes you must first '''evaluate''' it:{{Commands|$ nixos-rebuild {{{action|switch}}} --use-remote-sudo}}{{#ifeq: boot | {{{action}}} | Then, reboot:{{Commands|$ systemctl reboot}}}}{{#ifeq: test | {{{action}}} | '''Remember:''' any changes evaluated through <code>nixos-rebuild test</code> '''will not''' persist upon reboot.}}}}</includeonly>
</syntaxhighlight>
== Code (No --use-remote-sudo) ==
<syntaxhighlight lang=html>
<noinclude>{{DISPLAYTITLE:Template:evaluate}}
== About ==
This template is used to remind end-users that they need to rebuild for the changes to take effect. The optional attribute <code>action</code> can be used to define the subcommand suggested by the tip.
== Usage ==
Default <code>Evaluate</code> Box:
<pre>
<nowiki>{{Evaluate}}</nowiki>
</pre>
</pre>
Boot <code>Evaluate</code> Box:
<pre>
<nowiki>{{Evaluate|action=boot}}</nowiki>
</pre>
Test <code>Evaluate</code> Box:
<pre>
<nowiki>{{Evaluate|action=boot}}</nowiki>
</pre>
== Example ==
Default <code>Evaluate</code> Box:
{{Evaluate}}
Boot <code>Evaluate</code> Box:
{{Evaluate|action=boot}}
Test <code>Evaluate</code> Box:
{{Evaluate|action=test}}
</noinclude><includeonly>{{Tip
|1=In order to '''affect''' your NixOS system by your nix-language-specific changes you must first '''evaluate''' it:{{Commands|# nixos-rebuild {{{action|switch}}}}}{{#ifeq: boot | {{{action}}} | Then, reboot:{{Commands|$ systemctl reboot}}}}{{#ifeq: test | {{{action}}} | '''Remember:''' any changes evaluated through <code>nixos-rebuild test</code> '''will not''' persist upon reboot.}}}}</includeonly>
</syntaxhighlight>
== Code (Anonymous) ==
<syntaxhighlight lang=html>
<noinclude>{{DISPLAYTITLE:Template:evaluate}}
== About ==
This template is used to remind end-users that they need to rebuild for the changes to take effect. Optionally, you may define the action being suggested.
== Usage ==
Default <code>Evaluate</code> Box:
<pre>
<nowiki>{{Evaluate}}</nowiki>
</pre>
Boot <code>Evaluate</code> Box:
<pre>
<nowiki>{{Evaluate|boot}}</nowiki>
</pre>
Test <code>Evaluate</code> Box:
<pre>
<nowiki>{{Evaluate|test}}</nowiki>
</pre>
== Example ==
Default <code>Evaluate</code> Box:
{{Evaluate}}
Boot <code>Evaluate</code> Box:
{{Evaluate|boot}}
Test <code>Evaluate</code> Box:
{{Evaluate|test}}
</noinclude><includeonly>{{Tip
|1=In order to '''affect''' your NixOS system by your nix-language-specific changes you must first '''evaluate''' it:{{Commands|$ nixos-rebuild {{{1|switch}}} --use-remote-sudo}}{{#ifeq: boot | {{{1}}} | Then, reboot:{{Commands|$ systemctl reboot}}}}{{#ifeq: test | {{{1}}} | '''Remember:''' any changes evaluated through <code>nixos-rebuild test</code> '''will not''' persist upon reboot.}}}}</includeonly>
</syntaxhighlight>