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 & 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 is_nix_link source · line 532 · raw
@+target:String -> Bool
---- security ----
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.