~/bend-docscommunity

domain/architecture/system/deployment/nix_darwin/setting/ops.bend checks

raw source on the hub · import 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/ops.bend as Ops

6 imports
import Base
import bend-net-url@0.4.0.0/url.bend as Url
import ../../../plan/type.bend as P
import ../brew/type.bend as Br
import ../brew/ops.bend as BrO
import ./type.bend as St

Definitions

def literal source · line 9 · raw

@k:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.ValueKind -> @v:String -> String

---- mac.nix ----

def line source · line 16 · raw

@s:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting -> String

def lines source · line 21 · raw

@xs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting> -> String

def nix_bool source · line 28 · raw

@b:Bool -> String

def firewall_nix source · line 31 · raw

@f:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Firewall -> String

def mac_nix source · line 44 · raw

@settings:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting> -> @fw:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Firewall -> @brews:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/brew/type.Brew> -> String

The nix-darwin module for the Mac: its settings, firewall and Homebrew. Homebrew uninstalls what is not declared and never updates or upgrades on its own.

def option_of source · line 51 · raw

@s:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting -> String

def none_prefixed source · line 56 · raw

@xs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting> -> @+p:String -> Bool

def firewall_typed source · line 64 · raw

@settings:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting> -> Bool

The firewall is declared by its type, never as flat settings.

def value_if source · line 68 · raw

@hit:Bool -> @s:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting -> @other:String -> String

---- comparing declared and observed ----

def lookup source · line 74 · raw

@+option:String -> @now:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting> -> String

The first observed value of option, or "(unset)".

def drop_zeros source · line 81 · raw

@cs:List<&2, Char> -> List<&2, Char>

def trim_num source · line 89 · raw

@+s:String -> String

"0.500000" -> "0.5", "0.000000" -> "0": numbers compare by value, not spelling.

def same source · line 93 · raw

@+now:String -> @+want:String -> Bool

def change_if source · line 96 · raw

@+now:String -> @+option:String -> @+want:String -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/plan/type.Step>

def diff_one source · line 99 · raw

@s:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting -> @+now:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting> -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/plan/type.Step>

def diff source · line 105 · raw

@want:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting> -> @+now:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting> -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/plan/type.Step>

Every declared setting whose observed value differs.

def firewall_show source · line 112 · raw

@f:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Firewall -> String

def firewall_change source · line 119 · raw

@want:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Firewall -> @now:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Firewall -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/plan/type.Step>

def keep_if source · line 125 · raw

@keep:Bool -> @x:String -> @rest:List<&2, String> -> List<&2, String>

---- words and lines ----

def blank source · line 132 · raw

@cs:List<&2, Char> -> List<&2, Char>

def words source · line 139 · raw

@s:String -> List<&2, String>

def word source · line 142 · raw

@+s:String -> @n:Nat -> String

def last_word source · line 145 · raw

@+s:String -> String

def filled_go source · line 148 · raw

@ls:List<&2, String> -> List<&2, String>

def filled source · line 157 · raw

@s:String -> List<&2, String>

The trimmed, non-empty lines.

def distinct source · line 160 · raw

@xs:List<&2, String> -> List<&2, String>

def digits_of source · line 167 · raw

@cs:List<&2, Char> -> String

def digits source · line 174 · raw

@s:String -> String

def nat_of source · line 177 · raw

@+s:String -> Nat

def unquote source · line 180 · raw

@+s:String -> String

def nix_strs source · line 184 · raw

@xs:List<&2, String> -> String

def nix_list source · line 192 · raw

@xs:List<&2, String> -> String

A list of strings as a Nix list.

def nix_setting source · line 195 · raw

@o:String -> @v:String -> 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting

def bool_setting source · line 198 · raw

@o:String -> @b:Bool -> 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting

def str_setting source · line 201 · raw

@o:String -> @v:String -> 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting

def int_setting source · line 204 · raw

@o:String -> @v:String -> 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting

def when_filled source · line 208 · raw

@+v:String -> @s:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting>

The setting, when its observed value is not empty.

def scalar_kind source · line 213 · raw

@+t:String -> 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.ValueKind

---- system.defaults: which options (nix/options.tsv, "option<TAB>type"), and where macOS keeps them ---- How an option's type reads from a plist; KNix for the types that are not one scalar (not read).

def kind_of source · line 219 · raw

@+t:String -> 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.ValueKind

def option_line source · line 222 · raw

@+l:String -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting>

def option_lines source · line 228 · raw

@ls:List<&2, String> -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting>

def options source · line 236 · raw

@tsv:String -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting>

nix-darwin's options with how each reads; each value is "" until read from the Mac.

def after_defaults source · line 239 · raw

@+o:String -> String

def group_of source · line 243 · raw

@+o:String -> String

system.defaults.dock.tilesize -> "dock"; system.defaults.".GlobalPreferences".x -> ".GlobalPreferences".

def key_of source · line 249 · raw

@+o:String -> String

def domain source · line 256 · raw

@+g:String -> String

The defaults domain of a group ("-currentHost d" for a per-host one), "" for groups not read.

def export_args source · line 278 · raw

@+d:String -> List<&2, String>

defaults arguments that write a domain's plist XML to standard output.

def is_nix source · line 281 · raw

@k:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.ValueKind -> Bool

def domain_of source · line 289 · raw

@s:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting -> String

The domain an option is read from, "" when it is not read from one.

def domains_go source · line 294 · raw

@xs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting> -> List<&2, String>

def domains source · line 303 · raw

@xs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting> -> List<&2, String>

The domains the options are read from, each once.

def text_lines_go source · line 307 · raw

@s:String -> @+cur:List<&2, Char> -> @+acc:List<&2, String> -> List<&2, String>

---- plist XML, as defaults export writes it (real characters, unlike defaults read) ----

def text_lines source · line 316 · raw

@s:String -> List<&2, String>

String.lines in constant stack: Base's recurses as deep as the text is long, too deep for a large plist.

def xml_entity source · line 319 · raw

@+seg:String -> String

def xml_entities source · line 326 · raw

@segs:List<&2, String> -> String

def xml_unescape source · line 333 · raw

@+s:String -> String

def xml_escape_char source · line 337 · raw

@+c:Char -> String

def xml_escape source · line 340 · raw

@cs:List<&2, Char> -> String

def plist_scalar source · line 349 · raw

@+v:String -> String

"<true/>" -> "1", "<false/>" -> "0", "<integer>3</integer>" -> "3", "<string>a &amp; b</string>" -> "a & b"; "" when unset or not a scalar.

def ends_scalar source · line 356 · raw

@+l:String -> Bool

def value_lines source · line 360 · raw

@ls:List<&2, String> -> @done:Bool -> String

The lines of a value, up to the one that ends it.

def after_key source · line 369 · raw

@ls:List<&2, String> -> @+target:String -> @hit:Bool -> String

def plist_value source · line 379 · raw

@+key:String -> @ls:List<&2, String> -> String

The scalar of a top-level key in a plist's XML lines, "" when absent.

def normalize_kind source · line 383 · raw

@k:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.ValueKind -> @+v:String -> String

---- values, written as nix-darwin writes them ----

def normalize source · line 394 · raw

@k:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.ValueKind -> @+v:String -> String

def index_label source · line 397 · raw

@+raw:String -> @labels:List<&2, String> -> String

def finder_label source · line 400 · raw

@+c:String -> String

def value_for source · line 407 · raw

@+g:String -> @+key:String -> @k:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.ValueKind -> @+raw:String -> String

An option whose stored value is a code for a label (nix-darwin maps label -> code with apply).

def read_one source · line 414 · raw

@s:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting -> @+ls:List<&2, String> -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting>

def read_domain source · line 421 · raw

@xs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting> -> @+d:String -> @+ls:List<&2, String> -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting>

The options read from domain d, with their values in its exported XML lines.

def pm_hit source · line 429 · raw

@+ws:List<&2, String> -> @+key:String -> String

---- power: pmset -g custom lines like " sleep 10" (0 minutes: never) ----

def pm_get source · line 433 · raw

@ls:List<&2, String> -> @+key:String -> String

def minutes source · line 441 · raw

@+v:String -> String

def power_settings source · line 444 · raw

@+pm:String -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting>

def button_line source · line 453 · raw

@ls:List<&2, String> -> String

def button_setting source · line 461 · raw

@+pm:String -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting>

pmset -g's "Sleep On Power Button 1".

def firewall_on source · line 466 · raw

@on:Bool -> @+f:String -> 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Firewall

---- the firewall, from socketfilterfw's four answers ----

def firewall_of source · line 474 · raw

@+f:String -> 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Firewall

def url_path source · line 479 · raw

@+u:String -> String

---- Dock tiles: system.defaults.dock.persistent-apps / persistent-others ---- "file:///Applications/Google%20Chrome.app/" -> "/Applications/Google Chrome.app"; bend-net-url decodes.

def arrangement source · line 484 · raw

@+n:String -> String

def displayas source · line 488 · raw

@+n:String -> String

def showas source · line 491 · raw

@+n:String -> String

def app_tile source · line 494 · raw

@+t:String -> @+p:String -> String

def tile_nix source · line 501 · raw

@+key:String -> @+t:String -> @+url:String -> @+arr:String -> @+disp:String -> @+show:String -> String

A tile from its type, URL, arrangement, displayas and showas (plist fields; the last three for folders).

def spaced source · line 507 · raw

@xs:List<&2, String> -> String

def dock_setting source · line 514 · raw

@+key:String -> @+count:String -> @tiles:List<&2, String> -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting>

def services source · line 520 · raw

@+out:String -> List<&2, String>

---- network: nix-darwin gives every known service the same DNS servers and search domains; a Mac where they differ cannot be declared ---- networksetup -listallnetworkservices: a header line, then the services ("*" marks a disabled one).

def per_service source · line 524 · raw

@+out:String -> String

One service's servers or domains, "" when it has none.

def same_for_all source · line 527 · raw

@+what:String -> @+outs:List<&2, String> -> String

def sudo_keep source · line 535 · raw

@+l:String -> Bool

def sudo_line source · line 538 · raw

@l:String -> Bool

def sudo_extra source · line 542 · raw

@+sudo:String -> String

The sudoers lines nix-darwin writes from security.sudo.extraConfig (not its terminfo lines).

def after_word source · line 547 · raw

@ws:List<&2, String> -> @+w:String -> List<&2, String>

---- keyboard: hidutil's UserKeyMapping ---- The number after w = for each w in the words.

def pairs source · line 554 · raw

@src:List<&2, String> -> @dst:List<&2, String> -> String

def keyboard_settings source · line 565 · raw

@+km:String -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting>

def after_segment source · line 578 · raw

@segs:List<&2, String> -> @+s:String -> String

---- system ----

def time_zone source · line 586 · raw

@+link:String -> String

"/var/db/timezone/zoneinfo/America/Matamoros" -> "America/Matamoros".

def extra_shell_keep source · line 589 · raw

@+l:String -> Bool

def extra_shell source · line 592 · raw

@l:String -> Bool

def extra_shells source · line 596 · raw

@+shells:String -> List<&2, String>

/etc/shells beyond macOS's own.

def chime_setting source · line 600 · raw

@+mute:String -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting>

nvram's "StartupMute %01" (muted); nothing when it is not set.

def fonts_setting source · line 603 · raw

@fonts:List<&2, String> -> 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting

def account source · line 608 · raw

@+l:String -> List<&2, String>

---- users and groups (id >= 500, not system accounts) ---- dscl . -list /Users UniqueID lines "name 501" -> the names.

def accounts_go source · line 612 · raw

@ls:List<&2, String> -> List<&2, String>

def accounts source · line 619 · raw

@+out:String -> List<&2, String>

def dscl_value source · line 623 · raw

@+attr:String -> @+out:String -> String

dscl . -read <record> Attr answers "Attr: value" or "Attr:\n value".

def user_settings source · line 627 · raw

@+n:String -> @+uid:String -> @+gid:String -> @+dir:String -> @+real:String -> @+shell:String -> @+hidden:String -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting>

def group_settings source · line 632 · raw

@+n:String -> @+gid:String -> @+real:String -> @+members:String -> List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting>

def plist_of source · line 638 · raw

@labels:List<&2, String> -> @+f:String -> Bool

---- launchd files other than hidden ones, nix-darwin's own (org.nixos.*), the system's services and Determinate Nix's; each is named by its content hash, as ./launch/<hash>-<file> ----

def launch_kept source · line 645 · raw

@+f:String -> @+labels:List<&2, String> -> Bool

def launch_setting source · line 649 · raw

@+opt:String -> @+f:String -> @+sum:String -> 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting

shasum -a 256 output -> the setting.

def kind_bend source · line 653 · raw

@k:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.ValueKind -> String

---- a settings file in V's types, for a system to import ----

def setting_bend source · line 666 · raw

@s:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting -> String

def settings_bend source · line 671 · raw

@xs:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting> -> List<&2, String>

def bool_bend source · line 678 · raw

@b:Bool -> String

def firewall_bend source · line 681 · raw

@f:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Firewall -> String

def v_package source · line 689 · raw

String

The V package whose types the file names.

def import_text source · line 693 · raw

@settings:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Setting> -> @fw:0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/setting/type.Firewall -> @brews:List<&2, 0x635d6b0e0ec6a1b1f1319bf06aa496d9/domain/architecture/system/deployment/nix_darwin/brew/type.Brew> -> String

Bend source for the Mac's settings, firewall and Homebrew entries in V's types.