[Nix-dev] Pass arguments to 'required' configs
Sergey Mironov
grrwlf at gmail.com
Wed Nov 18 10:11:37 CET 2015
Nicolas, this solution makes sense if I understand how to include
private modules to local configuration. (We are discussing this in a
separate thread).
Regards,
Sergey
2015-11-17 17:55 GMT+03:00 Nicolas Pierron <nicolas.b.pierron at gmail.com>:
> Hi Sergey,
>
> If you are not using the proxy_port and proxy_host values for
> selecting the modules, I suggest you use the module system instead.
> This means that your previous example would become something like the
> example below. This solution is a bit more verbose, but you might be
> able to introspect these options with nixos-option command line tool
> and NixUI.
>
> // configuration.nix
> {
> require = [
> /etc/nixos/configuration.nix
> ./include/global_bash_aliases.nix
> ];
>
> custom.go.proxy.port = 4343;
> custom.go.proxy.host = "myproxy.local";
> …
> }
>
> // ./include/global_bash_aliases.nix
>
> { config, pkgs, lib, ... } :
>
> with lib;
> {
> options = {
> custom.go.proxy.port = mkOption {
> default = 4242;
> example = 4343;
> type = types.uniq types.int;
> description = ''
> port number used by the goproxy shell alias command.
> '';
> };
>
> custom.go.proxy.host = mkOption {
> example = "example.com";
> type = types.uniq types.str;
> description = ''
> host name used by the goproxy shell alias command.
> '';
> };
> };
>
> config = {
> environment = {
>
> extraInit = with config.custom.go.proxy ''
> alias goproxy "nc ${port} ${host}
> '';
> };
> };
> }
>
>
> On Tue, Nov 17, 2015 at 2:17 PM, Sergey Mironov <grrwlf at gmail.com> wrote:
>> Hi. This is a follow-up to my previous letter about Private NixOS modules.
>>
>> Another thing I am missing is the ability to pass arguments to
>> 'required' configuration modules. Below is the illustration of the
>> idea. Could you please give me some advice on this?
>>
>> Regards,
>> Sergey
>>
>>
>> // configuration.nix
>>
>> {config, pkgs, ...}:
>> let
>> proxy_port = "4343";
>> proxy_host = "myproxy.local";
>> in
>> {
>> require = [
>> /etc/nixos/hardware-configuration.nix
>> ..
>> (withArguments ./include/global_bash_aliases.nix { inherit
>> proxy_port proxy_host; })
>> ..
>> ];
>> ...
>>
>> }
>>
>>
>> //./include/global_bash_aliases.nix
>>
>> { proxy_port, proxy_host} :
>> { config, pkgs, ... } :
>> {
>> environment = rec {
>>
>> extraInit = ''
>> alias goproxy "nc ${proxy_port} ${proxy_host}
>> '';
>> };
>>
>> }
>> _______________________________________________
>> nix-dev mailing list
>> nix-dev at lists.science.uu.nl
>> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>
>
>
> --
> Nicolas Pierron
> http://www.linkedin.com/in/nicolasbpierron - http://nbp.name/
More information about the nix-dev
mailing list