(command.CommandList children: [ (command.ShFunction name: display_msg body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number 1))} arms: [ (case_arm pat_list: [{<usage>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 134 stdin_parts: [ <'\n'> <' '> ($ Id.VSub_DollarName PROG) <': [ -m mapping_file ] [ -c config_file ]\n'> <' m <mapping_file> Name of the generated NISLDAP mapping file\n'> <' Default is /var/yp/NISLDAPmapping\n'> < ' c <config_file> Name of the generated ypserv configuration file\n' > <' Default is /etc/default/ypserv\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [116 117 136 -1] ) (case_arm pat_list: [{<no_config_file_name_specified>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 157 stdin_parts: [ <'\n'> < 'You have not specified the config file name. You still have the\n' > < 'option to skip creating this file, specify a config file name, or\n' > <'continue creating it with the default file name ('> (${ Id.VSub_Name CONFIG_FILE) <').\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [139 140 159 -1] ) (case_arm pat_list: [{<no_mapping_file_name_specified>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 180 stdin_parts: [ <'\n'> < 'You have not specified the mapping file name. You still have the\n' > < 'option to skip creating this file, specify a mapping file name, or\n' > <'continue creating it with the default file name ('> (${ Id.VSub_Name MAP_FILE) <').\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [162 163 182 -1] ) (case_arm pat_list: [{<new_config_file_name_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 206 stdin_parts: [ <'\n'> <'You can either specify a new file name, or accept the default\n'> <'config file name ('> (${ Id.VSub_Name CONFIG_FILE) <'). \n'> <'\n'> <'It is recommended not to use the default file name since this\n'> <'script just helps with rapid creation of a config file. You\n'> <'should examine it\'s content before using it.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [185 186 208 -1] ) (case_arm pat_list: [{<new_mapping_file_name_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 238 stdin_parts: [ <'\n'> <'You can either specify a new file name, or accept the default\n'> <'mapping file name ('> (${ Id.VSub_Name MAP_FILE) <'). \n'> <'\n'> <'It is recommended not to use the default file name since this\n'> <'script just helps with rapid creation of a mapping file. You\n'> <'should examine it\'s content before using it. And if there are\n'> <'custom maps, then their entries in the mapping file need to be\n'> <'customized too.\n'> <'\n'> < 'Also, creation of default mapping file would cause NIS components\n' > < 'to work in NIS to LDAP (N2L), rather than traditional NIS, mode\n' > <'when next restarted.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [211 212 240 -1] ) (case_arm pat_list: [{<backup_config_file>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 267 stdin_parts: [ <'\n'> <'The config file '> <Id.Right_DoubleQuote '"'> (${ Id.VSub_Name CONFIG_FILE) <Id.Right_DoubleQuote '"'> <' already exists. It is strongly\n'> <'recommended that you BACKUP this file before running '> ($ Id.VSub_DollarName PROG) <'.\n'> <'\n'> < 'However, even if you continue, you would be given the option to\n' > <'back up this file before it gets overwritten.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [243 244 269 -1] ) (case_arm pat_list: [{<backup_mapping_file>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 296 stdin_parts: [ <'\n'> <'The mapping file '> <Id.Right_DoubleQuote '"'> (${ Id.VSub_Name MAP_FILE) <Id.Right_DoubleQuote '"'> <' already exists. It is strongly\n'> <'recommended that you BACKUP this file before running '> ($ Id.VSub_DollarName PROG) <'.\n'> <'\n'> < 'However, even if you continue, you would be given the option to\n' > <'back up this file before it gets overwritten.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [272 273 298 -1] ) (case_arm pat_list: [{<warn_n2l_mode>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 341 stdin_parts: [ <'\n'> <'Warning : Creation of default mapping file ('> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_DollarName MAP_FILE)}) right: <Id.Backtick_Right '`'> ) <')\n'> <' at default location ('> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<dirname>} {($ Id.VSub_DollarName MAP_FILE)}) right: <Id.Backtick_Right '`'> ) <') would cause NIS\n'> < ' components to work in NIS to LDAP (N2L) mode, rather than\n' > <' traditional NIS mode, when next restarted.\n'> <'\n'> <' '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName PROG) <Id.Right_DoubleQuote '"'> <' assists with rapid creation of a simple N2L mapping\n'> < ' file. The user should examine it\'s content before using it.\n' > < ' For custom maps, this file needs to be customized which can\n' > <' be done using standard text editors.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [301 302 343 -1] ) (case_arm pat_list: [{<config_auth_method_menu>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 360 stdin_parts: [ <' The following are the supported Authentication Methods -\n'> <' 1 none\n'> <' 2 simple\n'> <' 3 sasl/cram-md5\n'> <' 4 sasl/digest-md5\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [346 347 362 -1] ) (case_arm pat_list: [{<auth_method_menu>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 378 stdin_parts: [ <' The following are the supported Authentication Methods -\n'> <' 1 simple\n'> <' 2 sasl/cram-md5\n'> <' 3 sasl/digest-md5\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [365 366 380 -1] ) (case_arm pat_list: [{<tls_method_menu>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 395 stdin_parts: [ <' The following are the supported TLS Methods -\n'> <' 1 none\n'> <' 2 ssl\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [383 384 397 -1] ) (case_arm pat_list: [{<retrieve_error_action_menu>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 412 stdin_parts: [ <' The following are the supported actions -\n'> <' 1 use_cached\n'> <' 2 fail\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [400 401 414 -1] ) (case_arm pat_list: [{<store_error_action_menu>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 429 stdin_parts: [ <' The following are the supported actions -\n'> <' 1 retry\n'> <' 2 fail\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [417 418 431 -1] ) (case_arm pat_list: [{<sorry>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 446 stdin_parts: [ <'\n'> <'HELP - No help is available for this topic.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [434 435 448 -1] ) (case_arm pat_list: [{<backup_config_file_cont_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 470 stdin_parts: [ <'\n'> <'HELP - Since '> ($ Id.VSub_DollarName PROG) <' will overwrite the existing config file, it is\n'> <' strongly recommended that you backup this file prior to\n'> <' running this utility.\n'> <'\n'> < ' However, even if you continue, you would be given the option\n' > <' to back up this file before it gets overwritten.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [451 452 472 -1] ) (case_arm pat_list: [{<backup_config_file_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 488 stdin_parts: [ <'\n'> < 'HELP - If you choose to backup the existing config file, it would be\n' > < ' saved with current date and time suffix in yymmdd.HH.MM.SS format.\n' > <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [475 476 490 -1] ) (case_arm pat_list: [{<backup_mapping_file_cont_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 512 stdin_parts: [ <'\n'> <'HELP - Since '> ($ Id.VSub_DollarName PROG) <' will overwrite the existing mapping file, it is\n'> < ' strongly recommended that you backup this file prior to running\n' > <' this utility.\n'> <'\n'> < ' However, even if you continue, you would be given the option to\n' > <' back up this file before it gets overwritten.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [493 494 514 -1] ) (case_arm pat_list: [{<backup_mapping_file_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 530 stdin_parts: [ <'\n'> < 'HELP - If you choose to backup the existing mapping file, it would be\n' > < ' saved with current date and time suffix in yymmdd.HH.MM.SS format.\n' > <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [517 518 532 -1] ) (case_arm pat_list: [{<warn_n2l_mode_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 559 stdin_parts: [ <'\n'> < 'HELP - It is strongly recommended that the mapping file is created at\n' > <' non-default location (other than '> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<dirname>} {($ Id.VSub_DollarName MAP_FILE)}) right: <Id.Backtick_Right '`'> ) <'). After this,\n'> < ' it\'s content should be verified, custom maps should be handled,\n' > < ' and if NIS components are desired to run in NIS to LDAP (N2L),\n' > <' then only it should be copied at the default location.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [535 536 561 -1] ) (case_arm pat_list: [{<nisLDAPconfigDN_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 578 stdin_parts: [ <'\n'> < 'HELP - The DN which stores the configuration information in LDAP.\n' > < ' There is no default value for this field. Leave empty or\n' > < ' undefined to get this information from config file (ypserv).\n' > <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [564 565 580 -1] ) (case_arm pat_list: [{<nisLDAPconfigPreferredServerList_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 605 stdin_parts: [ <'\n'> <'HELP - List of directory servers to provide the configuration\n'> <' information. There is no default. The preferred servers\n'> < ' must be entered IN THE ORDER you wish to have them contacted.\n' > < ' The preferred server list is a space separated list of IP\n' > < ' addresses. Providing port numbers is optional, and when not\n' > < ' supplied, port 389 is assumed. For an LDAP server running\n' > <' on this machine, at port 389, use '> <Id.Right_DoubleQuote '"'> <'127.0.0.1:389'> <Id.Right_DoubleQuote '"'> <'.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [583 584 607 -1] ) (case_arm pat_list: [{<auth_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 623 stdin_parts: [ <'\n'> < 'HELP - The authentication method to be used to obtain information\n' > < ' from LDAP server. The supported methods are provided in menu.\n' > <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [610 611 625 -1] ) (case_arm pat_list: [{<tls_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 647 stdin_parts: [ <'\n'> < 'HELP - The transport layer security used for connection to the LDAP\n' > < ' server. In order to successfully use transport layer security,\n' > < ' the server must also support the chosen values. The supported\n' > <' methods are provided in menu. Default is '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName DEF_TLS) <Id.Right_DoubleQuote '"'> <'.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [628 629 649 -1] ) (case_arm pat_list: [{<TLSCertificateDBPath_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 669 stdin_parts: [ <'\n'> < 'HELP - The absolute path name of the directory containing the certificate\n' > <' database. The default value is '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName DEF_TLSCertificateDBPath) <Id.Right_DoubleQuote '"'> <'\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [652 653 671 -1] ) (case_arm pat_list: [{<nisLDAPconfigProxyUser_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 689 stdin_parts: [ <'\n'> < 'HELP - The bind DN of the proxy user used to obtain configuration\n' > < ' information. There is no default value. If the value ends\n' > < ' with a comma, the value of the nisLDAPconfigDN attribute\n' > <' is appended.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [674 675 691 -1] ) (case_arm pat_list: [{<ProxyPassword_warn>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 712 stdin_parts: [ <'\n'> < 'Warning : In order to avoid having this password publicly visible\n' > < ' on the machine, the password should appear only in the\n' > < ' configuration file, and the file should have an appropriate\n' > <' owner, group, and file mode.\n'> <'\n'> < ' So, once this file is ready, please modify appropriately\n' > <' to make sure this file is well protected.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [694 695 714 -1] ) (case_arm pat_list: [{<preferredServerList_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 739 stdin_parts: [ <'\n'> < 'HELP - List of directory servers for mapping data to/from LDAP.\n' > < ' There is no default. The preferred servers must be entered\n' > < ' IN THE ORDER you wish to have them contacted. The preferred\n' > <' server list is a space separated list of IP addresses.\n'> < ' Providing port numbers is optional, and when not supplied,\n' > <' port 389 is assumed. For an LDAP server running on this\n'> <' machine, at port 389, use '> <Id.Right_DoubleQuote '"'> <'127.0.0.1:389'> <Id.Right_DoubleQuote '"'> <'.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [717 718 741 -1] ) (case_arm pat_list: [{<nisLDAPproxyUser_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 761 stdin_parts: [ <'\n'> < 'HELP - The bind DN of the proxy user the ypserv to read or write\n' > < ' from or to LDAP. Assumed to have the appropriate permission\n' > < ' to read and modify LDAP data. There is no default value. If\n' > < ' the value ends with a comma, the value of the context for\n' > < ' the current domain (as defined by a nisLDAPdomainContext\n' > <' attribute (NISLDAPmapping(4))) is appended.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [744 745 763 -1] ) (case_arm pat_list: [{<nisLDAPbindTimeout_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 782 stdin_parts: [ <'\n'> < 'HELP - The amount of time in seconds after which an LDAP bind operation\n' > <' will timeout. Default is '> ($ Id.VSub_DollarName DEF_nisLDAPbindTimeout) <' seconds.\n'> <' Decimal values are allowed.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [766 767 784 -1] ) (case_arm pat_list: [{<nisLDAPsearchTimeout_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 803 stdin_parts: [ <'\n'> < 'HELP - The amount of time in seconds after which an LDAP search operation\n' > <' will timeout. Default is '> ($ Id.VSub_DollarName DEF_nisLDAPsearchTimeout) <' seconds.\n'> <' Decimal values are allowed.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [787 788 805 -1] ) (case_arm pat_list: [{<nisLDAPmodifyTimeout_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 824 stdin_parts: [ <'\n'> < 'HELP - The amount of time in seconds after which an LDAP modify operation\n' > <' will timeout. Default is '> ($ Id.VSub_DollarName DEF_nisLDAPmodifyTimeout) <' seconds.\n'> <' Decimal values are allowed.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [808 809 826 -1] ) (case_arm pat_list: [{<nisLDAPaddTimeout_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 845 stdin_parts: [ <'\n'> < 'HELP - The amount of time in seconds after which an LDAP add operation\n' > <' will timeout. Default is '> ($ Id.VSub_DollarName DEF_nisLDAPaddTimeout) <' seconds.\n'> <' Decimal values are allowed.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [829 830 847 -1] ) (case_arm pat_list: [{<nisLDAPdeleteTimeout_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 866 stdin_parts: [ <'\n'> < 'HELP - The amount of time in seconds after which an LDAP delete operation\n' > <' will timeout. Default is '> ($ Id.VSub_DollarName DEF_nisLDAPdeleteTimeout) <' seconds.\n'> <' Decimal values are allowed.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [850 851 868 -1] ) (case_arm pat_list: [{<nisLDAPsearchTimeLimit_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 895 stdin_parts: [ <'\n'> < 'HELP - Establish a value for the LDAP_OPT_TIMELIMIT option, which\n' > < ' suggests a time limit for the search operation on the LDAP\n' > < ' server. The server may impose its own constraints on possible\n' > < ' values. See your LDAP server documentation. The default is the\n' > <' nisLDAPsearchTimeout ('> ($ Id.VSub_DollarName DEF_nisLDAPsearchTimeout) <' seconds) value.\n'> <' Only integer values are allowed.\n'> <'\n'> < ' Since the nisLDAPsearchTimeout limits the amount of time the\n' > < ' client ypserv will wait for completion of a search operation,\n' > <' setting the nisLDAPsearchTimeLimit larger than the\n'> <' nisLDAPsearchTimeout is not recommended.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [871 872 897 -1] ) (case_arm pat_list: [{<nisLDAPsearchSizeLimit_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 919 stdin_parts: [ <'\n'> < 'HELP - Establish a value for the LDAP_OPT_SIZELIMIT option, which\n' > < ' suggests a size limit, in bytes, for the search results on\n' > < ' the LDAP server. The server may impose its own constraints\n' > < ' on possible values. See your LDAP server documentation. The\n' > <' default is '> ($ Id.VSub_DollarName DEF_nisLDAPsearchSizeLimit) <', which means unlimited.\n'> <' Only integer values are allowed.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [900 901 921 -1] ) (case_arm pat_list: [{<nisLDAPfollowReferral_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 939 stdin_parts: [ <'\n'> < 'HELP - Determines if the ypserv should follow referrals or not.\n' > <' Recognized values are yes and no. Default is '> ($ Id.VSub_DollarName DEF_nisLDAPfollowReferral) <'.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [924 925 941 -1] ) (case_arm pat_list: [{<nisLDAPretrieveErrorAction_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 969 stdin_parts: [ <'\n'> < 'HELP - If an error occurs while trying to retrieve an entry from\n' > <' LDAP, one of the following actions can be selected:\n'> <'\n'> < ' use_cached : Retry the retrieval the number of time specified\n' > <' by nisLDAPretrieveErrorAttempts, with the\n'> < ' nisLDAPretrieveErrorTimeout value controlling\n' > <' the wait between each attempt.\n'> <'\n'> < ' If all attempts fail then log a warning and\n' > < ' return the value currently in the cache to the\n' > <' client. This is the default value.\n'> <'\n'> < ' fail : Proceed as for \'use_cached\' but if all attempts\n' > < ' fail return a YPERR_YPERR error to the client.\n' > <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [944 945 971 -1] ) (case_arm pat_list: [{<nisLDAPretrieveErrorAttempts_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 989 stdin_parts: [ <'\n'> < 'HELP - The number of times a failed retrieval should be retried.\n' > < ' The default is unlimited. Note while retries are made, the\n' > < ' NIS daemon will be prevented from servicing further requests.\n' > <' Hence, values other than 1 should be used with caution.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [974 975 991 -1] ) (case_arm pat_list: [{<nisLDAPretrieveErrorTimeout_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1009 stdin_parts: [ <'\n'> < 'HELP - The timeout (in seconds) between each new attempt to retrieve\n' > <' LDAP data. Default is '> ($ Id.VSub_DollarName DEF_nisLDAPretrieveErrorTimeout) <' seconds.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [994 995 1011 -1] ) (case_arm pat_list: [{<nisLDAPstoreErrorAction_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1035 stdin_parts: [ <'\n'> < 'HELP - If an error occurs while trying to store data to the LDAP\n' > < ' repository, one of the following actions can be selected :\n' > <'\n'> < ' retry : Retry operation nisLDAPstoreErrorAttempts times with\n' > < ' nisLDAPstoreErrorTimeout seconds between each attempt.\n' > < ' Note while retries are made the NIS daemon will be\n' > < ' prevented from servicing further requests. Use with\n' > <' caution. This is the default value.\n'> <'\n'> <' fail : Return YPERR_YPERR error to the client.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1014 1015 1037 -1] ) (case_arm pat_list: [{<nisLDAPstoreErrorAttempts_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1056 stdin_parts: [ <'\n'> < 'HELP - The number of times a failed attempt to store data to the\n' > < ' LDAP repository should be retried. The default is unlimited.\n' > <'\n'> < ' The value for nisLDAPstoreErrorAttempts is ignored unless\n' > <' nisLDAPstoreErrorAction=retry.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1040 1041 1058 -1] ) (case_arm pat_list: [{<nisLDAPstoreErrorTimeout_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1079 stdin_parts: [ <'\n'> < 'HELP - The timeout (in seconds) between each new attempt to store\n' > <' LDAP data. Default is '> ($ Id.VSub_DollarName DEF_nisLDAPstoreErrorTimeout) <' seconds.\n'> <'\n'> < ' The value for nisLDAPstoreErrorTimeout is ignored unless\n' > <' nisLDAPstoreErrorAction=retry.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1061 1062 1081 -1] ) (case_arm pat_list: [{<selectDomain4N2L_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1098 stdin_parts: [ <'\n'> < 'HELP - Whether this domain needs to be served by YP to LDAP transition\n' > < ' solution. The default is no in which case the data in this\n' > < ' domain would not be taken care for transitioning to LDAP.\n' > <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1084 1085 1100 -1] ) (case_arm pat_list: [{<generate_comment_info_for_cust_map_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1117 stdin_parts: [ <'\n'> < 'HELP - If selected, this script will try to add relevant comments\n' > <' in the mapping file which might help in customizing the\n'> <' mapping information for custom maps.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1103 1104 1119 -1] ) (case_arm pat_list: [{<generate_mapping_info_for_cust_map_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1165 stdin_parts: [ <'\n'> <'HELP - If selected, this script will try to generate mapping\n'> <' information for this map assuming it is a '> <Id.Right_DoubleQuote '"'> <simple> <Id.Right_DoubleQuote '"'> <' map.\n'> <'\n'> <' A map is assumed to be '> <Id.Right_DoubleQuote '"'> <simple> <Id.Right_DoubleQuote '"'> <' if each entry of this map\n'> <' has only one '> <Id.Right_DoubleQuote '"'> <'key value'> <Id.Right_DoubleQuote '"'> <' entry in YP, and if each map entry\n'> < ' can be represented as a single DIT string in the LDAP server.\n' > <'\n'> < ' If this map is not a simple map and you do want to store it\n' > <' in LDAP, you have two options :\n'> <'\n'> < ' 1 - Answer yes, and this script would generate the mapping\n' > < ' information for this map assuming it is a simple map.\n' > < ' And once the execution of the script is over, you can\n' > < ' customize the mapping information by hand editing the\n' > <' mapping file.\n'> <'\n'> < ' 2 - Answer no, and this script would not generate mapping\n' > < ' info for this map. And once the execution of the script\n' > <' is over, you can include the customized mapping\n'> <' information by hand editing the mapping file.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1122 1123 1167 -1] ) (case_arm pat_list: [{<nisLDAPdomainContext_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1184 stdin_parts: [ <'\n'> < 'HELP - This parameter defines the context (default location) in\n' > < ' the directory tree at which all the name service entries\n' > <' for this particular domain would be stored.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1170 1171 1186 -1] ) (case_arm pat_list: [{<nisLDAPyppasswddDomains_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1208 stdin_parts: [ <'\n'> <'HELP - Lists the domains for which password changes should be\n'> < ' made. If this is not present then the value returned by\n' > <' \'domainname\' will be used.\n'> <'\n'> < ' NIS password change requests do not specify the domains in\n' > < ' which any given password should be changed. (In traditional\n' > < ' NIS this information is effectively hard coded in the NIS\n' > <' makefile.)\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1189 1190 1210 -1] ) (case_arm pat_list: [{<custom_map_comment_char_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1231 stdin_parts: [ <'\n'> < 'HELP - If selected, it will allow you to specify a character which\n' > < ' would represent the start of the special \'comment\' field in\n' > < ' a given NIS map. If this attribute is not present then the\n' > <' default comment character \'#\' is used.\n'> <'\n'> <' If a map cannot contain comments then the blank comment\n'> < ' character (\'\') should be specified (just hit the return key).\n' > <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1213 1214 1233 -1] ) (case_arm pat_list: [{<same_comment_char_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1253 stdin_parts: [ <'\n'> < 'HELP - If selected, for a given map, it will allow you to specify\n' > <' a common comment character for all the domains.\n'> <'\n'> <' Or else by selecting NO, for the same map, you would be\n'> <' given the option to specify different comment character\n'> <' for different domains.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1236 1237 1255 -1] ) (case_arm pat_list: [{<secure_flag_on_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1276 stdin_parts: [ <'\n'> <'HELP - Secure flag is set on maps which are generated with\n'> <' '> <Id.Right_DoubleQuote '"'> <'makedbm -s'> <Id.Right_DoubleQuote '"'> <'. When converting data from LDAP to YP,\n'> <' it adds YP_SECURE entries.\n'> <' \n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1258 1259 1278 -1] ) (case_arm pat_list: [{<secure_flag_all_domains_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1297 stdin_parts: [ <'\n'> < 'HELP - If selected, it will allow you to set the secure flag on\n' > <' for this map for all the domains.\n'> <'\n'> < ' Or else by selecting NO, you would be given the option to\n' > <' set this flag, for the same map, on per domain basis.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1281 1282 1299 -1] ) (case_arm pat_list: [{<interdomain_flag_on_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1324 stdin_parts: [ <'\n'> < 'HELP - Interdomain flag is set on a set of maps which are generated\n' > <' with '> <Id.Right_DoubleQuote '"'> <'makedbm -b'> <Id.Right_DoubleQuote '"'> <'. It signals NIS servers to use the domain\n'> < ' name resolver for host name and address lookups for hosts\n' > <' not found in the maps.\n'> <'\n'> < ' If selected, it adds YP_INTERDOMAIN entries in these maps\n' > <' when converting data from LDAP to YP.\n'> <' \n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1302 1303 1326 -1] ) (case_arm pat_list: [{<interdomain_flag_all_domains_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1345 stdin_parts: [ <'\n'> < 'HELP - If selected, it will allow you to set the interdomain flag\n' > <' on for all the domains.\n'> <'\n'> < ' Or else by selecting NO, you would be given the option to\n' > <' set this flag on per domain basis.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1329 1330 1347 -1] ) (case_arm pat_list: [{<initialTTLlo_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1369 stdin_parts: [ <'\n'> < 'HELP - The lower limit for the initial TTL (in seconds) for data\n' > < ' read from disk when the ypserv starts. If initialTTLhi also\n' > < ' is specified, the actual initialTTL will be randomly selected\n' > < ' from the interval initialTTLlo to initialTTLhi (inclusive).\n' > <'\n'> <' Leaving the field empty yields the default value of '> ($ Id.VSub_DollarName DEF_iTTLlo) <'.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1350 1351 1371 -1] ) (case_arm pat_list: [{<initialTTLhi_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1391 stdin_parts: [ <'\n'> <'HELP - The upper limit for the initial TTL (in seconds).\n'> <' If left empty, defaults to '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName DEF_iTTLhi) <Id.Right_DoubleQuote '"'> <'.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1374 1375 1393 -1] ) (case_arm pat_list: [{<runningTTL_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1413 stdin_parts: [ <'\n'> < 'HELP - The TTL (in seconds) for data retrieved from LDAP while the\n' > <' ypserv is running. If left empty, defaults to '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName DEF_runTTL) <Id.Right_DoubleQuote '"'> <'.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1396 1397 1415 -1] ) (case_arm pat_list: [{<default_ttl_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1445 stdin_parts: [ <'\n'> <'HELP - The default TTL value for each map is set to :\n'> <' '> (${ Id.VSub_Name DEF_iTTLlo) <':'> (${ Id.VSub_Name DEF_iTTLhi) <':'> (${ Id.VSub_Name DEF_runTTL) <'\n'> <'\n'> <' Select yes if you want to change the current TTL value.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1418 1419 1447 -1] ) (case_arm pat_list: [{<non_default_same_ttl_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1463 stdin_parts: [ <'\n'> <'HELP - Select yes if you want to set a new TTL value, but want\n'> <' to keep it same for all the maps.\n'> <' \n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1450 1451 1465 -1] ) (case_arm pat_list: [{<non_default_different_ttl_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1481 stdin_parts: [ <'\n'> < 'HELP - Select yes if you want to set TTL value for each map, but\n' > <' want to keep it same for all the domains.\n'> <' \n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1468 1469 1483 -1] ) (case_arm pat_list: [{<default_different_ttl_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1499 stdin_parts: [ <'\n'> <'HELP - Select yes if you want to accept the default TTL\n'> <' value for this map.\n'> <' \n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1486 1487 1501 -1] ) (case_arm pat_list: [{<same_ttl_across_domains_help>}] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 1517 stdin_parts: [ <'\n'> <'HELP - Select yes if you want to set TTL value for the map,\n'> <' but want to keep it same for all the domains.\n'> <'\n'> ] ) ) ] more_env: [] do_fork: T ) ] spids: [1504 1505 1519 -1] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: d_echo body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<DEBUG>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (C {<echo>} {($ Id.VSub_At '@')}) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_ans body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Number 2))} {<Id.Lit_RBracket ']'>} ) ] ) action: [(C {<echo>} {(DQ ($ Id.VSub_Number 1) <' '> <Id.Lit_BadBackslash '\\'> <c>)})] spids: [1588 1601] ) ] else_action: [ (C {<echo>} { (DQ ($ Id.VSub_Number 1) <' ['> ($ Id.VSub_Number 2) <'] '> <Id.Lit_BadBackslash '\\'> <c> ) } ) ] redirects: [] ) (C {<read>} {<ANS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName ANS))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ANS='> name:ANS) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [1654] ) ] redirects: [] ) ] spids: [1638 1651] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_ans_req body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ANS='> name:ANS) op: assign_op.Equal rhs: {(DQ )} spids: [1683] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ANS))} {<Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) ] ) body: (command.DoGroup children: [ (C {<get_ans>} {(DQ ($ Id.VSub_At '@'))}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ANS))} {<Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {(DQ <'NULL value not allowed!'>)}) ] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_integer body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ANS='> name:ANS) op: assign_op.Equal rhs: {(DQ )} spids: [1774] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NUM='> name:NUM) op: assign_op.Equal rhs: {(DQ )} spids: [1782] ) ] redirects: [] ) (C {<get_ans>} {(DQ ($ Id.VSub_Number 1))} {(DQ ($ Id.VSub_Number 2))}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<not_integer>} {($ Id.VSub_DollarName ANS)})]) body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName ANS))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'>} {<help>} {<Help>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')} ] action: [ (C {<display_msg>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 3> var_name: 3 suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<sorry>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] spids: [1823 1838 1848 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} { (DQ <'Invalid value: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name ANS) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'. '> <Id.Lit_BadBackslash '\\'> <c> ) } ) ] spids: [1851 1853 1870 -1] ) ] redirects: [] ) (C {<get_ans>} {(DQ <'Enter an integer value:'>)} {(DQ ($ Id.VSub_Number 2))}) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NUM='> name:NUM) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ANS)} spids: [1895] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_number body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ANS='> name:ANS) op: assign_op.Equal rhs: {(DQ )} spids: [1930] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NUM='> name:NUM) op: assign_op.Equal rhs: {(DQ )} spids: [1938] ) ] redirects: [] ) (C {<get_ans>} {(DQ ($ Id.VSub_Number 1))} {(DQ ($ Id.VSub_Number 2))}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<not_numeric>} {($ Id.VSub_DollarName ANS)})]) body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName ANS))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'>} {<help>} {<Help>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')} ] action: [ (C {<display_msg>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 3> var_name: 3 suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<sorry>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] spids: [1979 1994 2004 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} { (DQ <'Invalid value: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name ANS) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'. '> <Id.Lit_BadBackslash '\\'> <c> ) } ) ] spids: [2007 2009 2026 -1] ) ] redirects: [] ) (C {<get_ans>} {(DQ <'Enter a numeric value:'>)} {(DQ ($ Id.VSub_Number 2))}) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NUM='> name:NUM) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ANS)} spids: [2051] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_pos_int body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_integer>} {(DQ ($ Id.VSub_Number 1))} {(DQ ($ Id.VSub_Number 2))} {(DQ ($ Id.VSub_Number 3))} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName ANS)} {<-lt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Invalid number: please enter a positive integer.'>)}) ] spids: [2107 2120] ) ] else_action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_pos_num body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_number>} {(DQ ($ Id.VSub_Number 1))} {(DQ ($ Id.VSub_Number 2))} {(DQ ($ Id.VSub_Number 3))} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName ANS)} {<-lt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Invalid number: please enter a positive number.'>)}) ] spids: [2197 2210] ) ] else_action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_passwd body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {(DQ <'In get_passwd()'>)}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_PASS1='> name:_PASS1) op: assign_op.Equal rhs: {(DQ )} spids: [2284] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_PASS2='> name:_PASS2) op: assign_op.Equal rhs: {(DQ )} spids: [2289] ) ] redirects: [] ) (C {<trap>} {(DQ <'/usr/bin/stty echo; exit'>)} {<1>} {<2>} {<3>} {<6>} {<15>}) (C {<'/usr/bin/stty'>} {<-echo>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ANS='> name:ANS) op: assign_op.Equal rhs: {(DQ )} spids: [2342] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ANS))} {<Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) ] ) body: (command.DoGroup children: [ (C {<get_ans>} {(DQ ($ Id.VSub_At '@'))}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ANS))} {<Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {(DQ )}) (C {<echo>} {(DQ <'NULL passwd not allowed!'>)}) ] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_PASS1='> name:_PASS1) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ANS)} spids: [2413] ) ] redirects: [] ) (C {<echo>} {(DQ )}) (C {<get_ans>} {(DQ <'Re-enter passwd:'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_PASS2='> name:_PASS2) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ANS)} spids: [2438] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName _PASS1))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName _PASS2))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [2447 2464] ) ] else_action: [] redirects: [] ) (C {<echo>} {(DQ )}) (C {<echo>} {(DQ <'ERROR: passwords don\'t match; try again.'>)}) ] ) redirects: [] ) (C {<'/usr/bin/stty'>} {<echo>}) (C {<trap>} {<1>} {<2>} {<3>} {<6>} {<15>}) (C {<echo>} {(DQ )}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_passwd_nochk body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {(DQ <'In get_passwd_nochk()'>)}) ] ) (C {<trap>} {(DQ <'/usr/bin/stty echo; exit'>)} {<1>} {<2>} {<3>} {<6>} {<15>}) (C {<'/usr/bin/stty'>} {<-echo>}) (C {<get_ans>} {(DQ ($ Id.VSub_At '@'))}) (C {<'/usr/bin/stty'>} {<echo>}) (C {<trap>} {<1>} {<2>} {<3>} {<6>} {<15>}) (C {<echo>} {(DQ )}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_confirm body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_ANSWER='> name:_ANSWER) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [2668] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Number 2))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'INTERNAL ERROR: get_confirm requires 2 args, 3rd is optional.'>)} ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] spids: [2684 2697] ) ] else_action: [] redirects: [] ) (C {<echo>} { (DQ ($ Id.VSub_Number 1) <' ['> ($ Id.VSub_Number 2) <'] '> <Id.Lit_BadBackslash '\\'> <c> ) } ) (C {<read>} {<_ANSWER>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName _ANSWER))} {<Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number 2))} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_ANSWER='> name: _ANSWER ) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [2774] ) ] redirects: [] ) ] spids: [2742 2771] ) ] else_action: [] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName _ANSWER))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Yy> <Id.Lit_RBracket ']'>} {<yes>} {<Yes>} {<YES>} ] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2790 2805 2811 -1] ) (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Nn> <Id.Lit_RBracket ']'>} {<no>} {<No>} {<NO>} ] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2814 2829 2835 -1] ) (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'>} {<help>} {<Help>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')} ] action: [ (C {<display_msg>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 3> var_name: 3 suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<sorry>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] spids: [2838 2853 2862 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<echo>} {(DQ <'Please enter y or n.'>)})] spids: [2865 2867 2875 -1] ) ] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_confirm_nodef body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_ANSWER='> name:_ANSWER) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [2906] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<echo>} {(DQ ($ Id.VSub_At '@') <' '> <Id.Lit_BadBackslash '\\'> <c>)}) (C {<read>} {<_ANSWER>}) (command.Case to_match: {(DQ ($ Id.VSub_DollarName _ANSWER))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Yy> <Id.Lit_RBracket ']'>} {<yes>} {<Yes>} {<YES>} ] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2942 2957 2963 -1] ) (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Nn> <Id.Lit_RBracket ']'>} {<no>} {<No>} {<NO>} ] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2966 2981 2987 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<echo>} {(DQ <'Please enter y or n.'>)})] spids: [2990 2992 3000 -1] ) ] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: is_integer body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-ne>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})] spids: [3038 3051] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<expr>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Other '+'>} {<1>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ge>} {<2>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})] spids: [3086 3099] ) ] else_action: [] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: not_integer body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<is_integer>} {($ Id.VSub_Number 1)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})] spids: [3156 3169] ) ] else_action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: is_numeric body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-ne>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})] spids: [3217 3230] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<let>} {<Id.Lit_VarLike '_NUM='> (DQ ($ Id.VSub_Number 1) <' + 1'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})] spids: [3263 3276] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: not_numeric body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<is_numeric>} {($ Id.VSub_Number 1)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})] spids: [3325 3338] ) ] else_action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: domain_2_dc body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_DOM='> name:_DOM) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [3379] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_DOM_2_DC='> name:_DOM_2_DC) op: assign_op.Equal rhs: {(DQ )} spids: [3386] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_FIRST='> name:_FIRST) op: assign_op.Equal rhs: {<1>} spids: [3394] ) ] redirects: [] ) (C {<export>} {<_DOM_2_DC>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'domtmp='> name:domtmp) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {(${ Id.VSub_Name _DOM)}) (C {<tr>} {(SQ <.>)} {(SQ <' '>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) ) } spids: [3416] ) ] redirects: [] ) (command.ForEach iter_names: [i] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName domtmp)}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName _FIRST)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_DOM_2_DC='> name: _DOM_2_DC ) op: assign_op.Equal rhs: {(DQ <'dc='> (${ Id.VSub_Name i))} spids: [3471] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_FIRST='> name:_FIRST) op: assign_op.Equal rhs: {<0>} spids: [3480] ) ] redirects: [] ) ] spids: [3454 3467] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_DOM_2_DC='> name: _DOM_2_DC ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name _DOM_2_DC) <',dc='> (${ Id.VSub_Name i))} spids: [3487] ) ] redirects: [] ) ] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: is_root_user body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Case to_match: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<id>}) right: <Id.Backtick_Right '`'> ) } arms: [ (case_arm pat_list: [ {<Id.Lit_VarLike 'uid='> <0> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\('> ch: '(' ) <root> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')') <Id.Lit_Star '*'> } ] action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})] spids: [3535 3541 3547 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})] spids: [3550 3552 3558 -1] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: parse_arg body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<getopts>} {(DQ <':dm:c:'>)} {<ARG>})]) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName ARG)} arms: [ (case_arm pat_list: [{<d>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEBUG='> name:DEBUG) op: assign_op.Equal rhs: {<1>} spids: [3610] ) ] redirects: [] ) ] spids: [3607 3608 3612 -1] ) (case_arm pat_list: [{<m>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MAP_FILE='> name: MAP_FILE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG)} spids: [3619] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MAPPING_FILE_SPECIFIED='> name: MAPPING_FILE_SPECIFIED ) op: assign_op.Equal rhs: {<1>} spids: [3623] ) ] redirects: [] ) ] spids: [3616 3617 3625 -1] ) (case_arm pat_list: [{<c>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONFIG_FILE='> name: CONFIG_FILE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG)} spids: [3632] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONFIG_FILE_SPECIFIED='> name: CONFIG_FILE_SPECIFIED ) op: assign_op.Equal rhs: {<1>} spids: [3636] ) ] redirects: [] ) ] spids: [3629 3630 3638 -1] ) (case_arm pat_list: [ {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')} ] action: [ (C {<echo>} { (DQ <'**ERROR: Invalid option \''> ($ Id.VSub_DollarName OPTARG) <'\''>) } ) (C {<display_msg>} {<usage>}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [3642 3643 3662 -1] ) ] redirects: [] ) ] ) redirects: [] ) (C {<shift>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName OPTIND)} {<->} {<1>}) right: <Id.Backtick_Right '`'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'**ERROR: wrong usage '>)}) (C {<display_msg>} {<usage>}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [3687 3700] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: present body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_ELEMENT='> name:_ELEMENT) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [3745] ) ] redirects: [] ) (C {<shift>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARG_LIST='> name:ARG_LIST) op: assign_op.Equal rhs: {($ Id.VSub_At '@')} spids: [3751] ) ] redirects: [] ) (command.ForEach iter_names: [item] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName ARG_LIST)}]) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName _ELEMENT))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName item))} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) ] ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: remove body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_ELEMENT='> name:_ELEMENT) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [3819] ) ] redirects: [] ) (C {<shift>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARG_LIST='> name:ARG_LIST) op: assign_op.Equal rhs: {($ Id.VSub_At '@')} spids: [3825] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NEW_LIST='> name:NEW_LIST) op: assign_op.Equal rhs: {(DQ )} spids: [3829] ) ] redirects: [] ) (command.ForEach iter_names: [item] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName ARG_LIST)}]) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName _ELEMENT))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName item))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NEW_LIST='> name:NEW_LIST) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName NEW_LIST) <' '> ($ Id.VSub_DollarName item)) } spids: [3862] ) ] redirects: [] ) ] ) ] ) redirects: [] ) (C {<echo>} {($ Id.VSub_DollarName NEW_LIST)}) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: merge_lists body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MERGED_LIST='> name:MERGED_LIST) op: assign_op.Equal rhs: {(DQ )} spids: [3902] ) ] redirects: [] ) (command.ForEach iter_names: [_VAR] iterable: (for_iter.Words words:[{(DQ ($ Id.VSub_At '@'))}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _VAR)} {($ Id.VSub_DollarName MERGED_LIST)} ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MERGED_LIST='> name: MERGED_LIST ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName MERGED_LIST) <' '> ($ Id.VSub_DollarName _VAR) ) } spids: [3934] ) ] redirects: [] ) ] spids: [3920 3931] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (C {<echo>} {($ Id.VSub_DollarName MERGED_LIST)}) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: init body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEBUG='> name:DEBUG) op: assign_op.Equal rhs: {<0>} spids: [3977] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MAPPING_FILE_SPECIFIED='> name: MAPPING_FILE_SPECIFIED ) op: assign_op.Equal rhs: {<0>} spids: [3984] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONFIG_FILE_SPECIFIED='> name: CONFIG_FILE_SPECIFIED ) op: assign_op.Equal rhs: {<0>} spids: [3990] ) ] redirects: [] ) (C {<umask>} {<077>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEFAULT_MAP_FILE='> name: DEFAULT_MAP_FILE ) op: assign_op.Equal rhs: {(DQ <'/var/yp/NISLDAPmapping'>)} spids: [4009] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEFAULT_CONFIG_FILE='> name: DEFAULT_CONFIG_FILE ) op: assign_op.Equal rhs: {(DQ <'/etc/default/ypserv'>)} spids: [4014] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAP_FILE='> name:MAP_FILE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName DEFAULT_MAP_FILE))} spids: [4020] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONFIG_FILE='> name:CONFIG_FILE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName DEFAULT_CONFIG_FILE))} spids: [4025] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPDIR='> name:TMPDIR) op: assign_op.Equal rhs: {(DQ <'/var/yp/inityp2l'>)} spids: [4034] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPCONF='> name:TMPCONF) op: assign_op.Equal rhs: {(DQ <ypserv-tmp>)} spids: [4046] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPMAP='> name:TMPMAP) op: assign_op.Equal rhs: {(DQ <NISLDAPmapping-tmp>)} spids: [4051] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-d>} {(DQ ($ Id.VSub_DollarName TMPDIR))} {<Id.Lit_RBracket ']'>} ) (C {<rm>} {<-rf>} {($ Id.VSub_DollarName TMPDIR)}) ] ) (C {<mkdir>} {($ Id.VSub_DollarName TMPDIR)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<ERROR>} {<Id.Lit_Colon ':'>} {<Failed>} {<to>} {<create>} {<temp>} {<directory>} {($ Id.VSub_DollarName TMPDIR)} ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [4082 4095] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEFAULT_NIS_MAPS='> name: DEFAULT_NIS_MAPS ) op: assign_op.Equal rhs: { (DQ <'passwd.byname\n'> <' passwd.byuid\n'> <' group.byname\n'> <' group.bygid\n'> <' hosts.byaddr\n'> <' hosts.byname\n'> <' ipnodes.byaddr\n'> <' ipnodes.byname\n'> <' ethers.byaddr\n'> <' ethers.byname\n'> <' networks.byaddr\n'> <' networks.byname\n'> <' rpc.bynumber\n'> <' services.byname\n'> <' services.byservicename\n'> <' printers.conf.byname\n'> <' project.byname\n'> <' project.byprojid\n'> <' protocols.byname\n'> <' protocols.bynumber\n'> <' netgroup\n'> <' netgroup.byuser\n'> <' netgroup.byhost\n'> <' bootparams\n'> <' mail.aliases\n'> <' mail.byaddr\n'> <' publickey.byname\n'> <' netid.byname\n'> <' netmasks.byaddr\n'> <' passwd.adjunct.byname\n'> <' group.adjunct.byname\n'> <' timezone.byname\n'> <' auth_attr\n'> <' exec_attr\n'> <' prof_attr\n'> <' user_attr\n'> <' audit_user\n'> <' auto.master\n'> <' auto.home\n'> <' ypservers'> ) } spids: [4127] ) ] redirects: [] ) (C {<set>} {<-A>} {<DEF_NIS_MAP_ARRAY>} {($ Id.VSub_DollarName DEFAULT_NIS_MAPS)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_TTL_MAPLIST='> name: DEF_TTL_MAPLIST ) op: assign_op.Equal rhs: { (DQ <'audit_user\n'> <' auto.home\n'> <' auto.master\n'> <' auth_attr\n'> <' bootparams\n'> <' ethers\n'> <' exec_attr\n'> <' group\n'> <' group.adjunct.byname\n'> <' keys.host\n'> <' keys.pass\n'> <' keys.nobody\n'> <' hosts\n'> <' multihosts\n'> <' ipnodes\n'> <' multiipnodes\n'> <' netgroup\n'> <' networks\n'> <' passwd\n'> <' passwd.adjunct.byname\n'> <' printers.conf.byname\n'> <' prof_attr\n'> <' project\n'> <' protocols\n'> <' services\n'> <' mail.aliases\n'> <' mail.mapping\n'> <' netid.host\n'> <' netid.pass\n'> <' netmasks.byaddr\n'> <' rpc.bynumber\n'> <' ageing.byname\n'> <' timezone.byname\n'> <' user_attr\n'> <' ypservers'> ) } spids: [4184] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'configDN_flag='> name:configDN_flag) op: assign_op.Equal rhs: {<0>} spids: [4229] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_nisLDAPconfigDN='> name: DEF_nisLDAPconfigDN ) op: assign_op.Equal rhs: {(DQ )} spids: [4232] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEF_TLS='> name:DEF_TLS) op: assign_op.Equal rhs: {<none>} spids: [4236] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_TLSCertificateDBPath='> name: DEF_TLSCertificateDBPath ) op: assign_op.Equal rhs: {<'/var/yp/'>} spids: [4239] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_nisLDAPbindTimeout='> name: DEF_nisLDAPbindTimeout ) op: assign_op.Equal rhs: {<15>} spids: [4242] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_nisLDAPsearchTimeout='> name: DEF_nisLDAPsearchTimeout ) op: assign_op.Equal rhs: {<180>} spids: [4245] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_nisLDAPmodifyTimeout='> name: DEF_nisLDAPmodifyTimeout ) op: assign_op.Equal rhs: {<15>} spids: [4248] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_nisLDAPaddTimeout='> name: DEF_nisLDAPaddTimeout ) op: assign_op.Equal rhs: {<15>} spids: [4251] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_nisLDAPdeleteTimeout='> name: DEF_nisLDAPdeleteTimeout ) op: assign_op.Equal rhs: {<15>} spids: [4254] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_nisLDAPsearchTimeLimit='> name: DEF_nisLDAPsearchTimeLimit ) op: assign_op.Equal rhs: {(${ Id.VSub_Name DEF_nisLDAPsearchTimeout)} spids: [4257] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_nisLDAPsearchSizeLimit='> name: DEF_nisLDAPsearchSizeLimit ) op: assign_op.Equal rhs: {<0>} spids: [4262] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_nisLDAPfollowReferral='> name: DEF_nisLDAPfollowReferral ) op: assign_op.Equal rhs: {<no>} spids: [4265] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_nisLDAPretrieveErrorAction='> name: DEF_nisLDAPretrieveErrorAction ) op: assign_op.Equal rhs: {<use_cached>} spids: [4268] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SUG_nisLDAPretrieveErrorAttempts='> name: SUG_nisLDAPretrieveErrorAttempts ) op: assign_op.Equal rhs: {<1>} spids: [4278] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_nisLDAPretrieveErrorTimeout='> name: DEF_nisLDAPretrieveErrorTimeout ) op: assign_op.Equal rhs: {<15>} spids: [4281] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_nisLDAPstoreErrorAction='> name: DEF_nisLDAPstoreErrorAction ) op: assign_op.Equal rhs: {<retry>} spids: [4284] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SUG_nisLDAPstoreErrorAttempts='> name: SUG_nisLDAPstoreErrorAttempts ) op: assign_op.Equal rhs: {<1>} spids: [4291] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_nisLDAPstoreErrorTimeout='> name: DEF_nisLDAPstoreErrorTimeout ) op: assign_op.Equal rhs: {<15>} spids: [4294] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEF_iTTLlo='> name:DEF_iTTLlo) op: assign_op.Equal rhs: {<1800>} spids: [4301] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEF_iTTLhi='> name:DEF_iTTLhi) op: assign_op.Equal rhs: {<5400>} spids: [4304] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEF_runTTL='> name:DEF_runTTL) op: assign_op.Equal rhs: {<3600>} spids: [4307] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: config_auth_menu_handler body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<display_msg>} {<config_auth_method_menu>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans_req>} {(DQ <' Choose one Authentication Method (h=help):'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_MENU_CHOICE='> name: _MENU_CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ANS)} spids: [4373] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName _MENU_CHOICE))} arms: [ (case_arm pat_list: [{<1>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_AUTHMETHOD='> name: _AUTHMETHOD ) op: assign_op.Equal rhs: {(DQ <none>)} spids: [4389] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [4386 4387 4397 -1] ) (case_arm pat_list: [{<2>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_AUTHMETHOD='> name: _AUTHMETHOD ) op: assign_op.Equal rhs: {(DQ <simple>)} spids: [4403] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [4400 4401 4411 -1] ) (case_arm pat_list: [{<3>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_AUTHMETHOD='> name: _AUTHMETHOD ) op: assign_op.Equal rhs: {(DQ <'sasl/cram-md5'>)} spids: [4417] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [4414 4415 4425 -1] ) (case_arm pat_list: [{<4>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_AUTHMETHOD='> name: _AUTHMETHOD ) op: assign_op.Equal rhs: {(DQ <'sasl/digest-md5'>)} spids: [4431] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [4428 4429 4439 -1] ) (case_arm pat_list: [{<h>}] action: [(C {<display_msg>} {<auth_help>})] spids: [4442 4443 4449 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<echo>} {(DQ <'Please enter 1-4, or h=help.'>)})] spids: [4452 4453 4461 -1] ) ] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: auth_menu_handler body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<display_msg>} {<auth_method_menu>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans_req>} {(DQ <' Choose one Authentication Method (h=help):'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_MENU_CHOICE='> name: _MENU_CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ANS)} spids: [4528] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName _MENU_CHOICE))} arms: [ (case_arm pat_list: [{<1>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_AUTHMETHOD='> name: _AUTHMETHOD ) op: assign_op.Equal rhs: {(DQ <simple>)} spids: [4544] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [4541 4542 4552 -1] ) (case_arm pat_list: [{<2>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_AUTHMETHOD='> name: _AUTHMETHOD ) op: assign_op.Equal rhs: {(DQ <'sasl/cram-md5'>)} spids: [4558] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [4555 4556 4566 -1] ) (case_arm pat_list: [{<3>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_AUTHMETHOD='> name: _AUTHMETHOD ) op: assign_op.Equal rhs: {(DQ <'sasl/digest-md5'>)} spids: [4572] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [4569 4570 4580 -1] ) (case_arm pat_list: [{<h>}] action: [(C {<display_msg>} {<auth_help>})] spids: [4583 4584 4590 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<echo>} {(DQ <'Please enter 1-3, or h=help.'>)})] spids: [4593 4594 4602 -1] ) ] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: tls_menu_handler body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<display_msg>} {<tls_method_menu>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans>} {(DQ <' Choose one Transport Layer Security Method (h=help):'>)} {(DQ <1>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_MENU_CHOICE='> name: _MENU_CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ANS)} spids: [4678] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName _MENU_CHOICE))} arms: [ (case_arm pat_list: [{<1>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_TLSMETHOD='> name: _TLSMETHOD ) op: assign_op.Equal rhs: {(DQ <none>)} spids: [4694] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [4691 4692 4702 -1] ) (case_arm pat_list: [{<2>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_TLSMETHOD='> name: _TLSMETHOD ) op: assign_op.Equal rhs: {(DQ <ssl>)} spids: [4708] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [4705 4706 4716 -1] ) (case_arm pat_list: [{<h>}] action: [(C {<display_msg>} {<tls_help>})] spids: [4719 4720 4726 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<echo>} {(DQ <'Please enter 1, 2, or h=help.'>)})] spids: [4729 4730 4738 -1] ) ] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: retrieve_error_action_menu_handler body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<display_msg>} {<retrieve_error_action_menu>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans>} {(DQ <' Choose one retrieval error action (h=help):'>)} {(DQ <1>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_MENU_CHOICE='> name: _MENU_CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ANS)} spids: [4809] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName _MENU_CHOICE))} arms: [ (case_arm pat_list: [{<1>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_RET_ERR_ACT='> name: _RET_ERR_ACT ) op: assign_op.Equal rhs: {(DQ <use_cached>)} spids: [4825] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [4822 4823 4833 -1] ) (case_arm pat_list: [{<2>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_RET_ERR_ACT='> name: _RET_ERR_ACT ) op: assign_op.Equal rhs: {(DQ <fail>)} spids: [4839] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [4836 4837 4847 -1] ) (case_arm pat_list: [{<h>}] action: [(C {<display_msg>} {<nisLDAPretrieveErrorAction_help>})] spids: [4850 4851 4857 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<echo>} {(DQ <'Please enter 1, 2, or h=help.'>)})] spids: [4860 4861 4869 -1] ) ] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: store_error_action_menu_handler body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<display_msg>} {<store_error_action_menu>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans>} {(DQ <' Choose one store error action (h=help):'>)} {(DQ <1>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_MENU_CHOICE='> name: _MENU_CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ANS)} spids: [4940] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName _MENU_CHOICE))} arms: [ (case_arm pat_list: [{<1>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_STOR_ERR_ACT='> name: _STOR_ERR_ACT ) op: assign_op.Equal rhs: {(DQ <retry>)} spids: [4956] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [4953 4954 4964 -1] ) (case_arm pat_list: [{<2>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_STOR_ERR_ACT='> name: _STOR_ERR_ACT ) op: assign_op.Equal rhs: {(DQ <fail>)} spids: [4970] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [4967 4968 4978 -1] ) (case_arm pat_list: [{<h>}] action: [(C {<display_msg>} {<nisLDAPstoreErrorAction_help>})] spids: [4981 4982 4988 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<echo>} {(DQ <'Please enter 1, 2, or h=help.'>)})] spids: [4991 4992 5000 -1] ) ] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {(DQ <'In cleanup()'>)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) (C {<rm>} {<-rf>} {($ Id.VSub_DollarName TMPDIR)}) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: check_back_config_file body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName CONFIG_FILE)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<display_msg>} {<backup_config_file>}) (C {<get_confirm>} {(DQ <'Do you wish to continue (y/n/h)?'>)} {(DQ <n>)} {(DQ <backup_config_file_cont_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<cleanup>}) terminator: <Id.Op_Semi _> ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [5118 5131] ) ] else_action: [] redirects: [] ) (C {<get_confirm>} {(DQ <'Do you wish to backup the config file '>) (${ Id.VSub_Name CONFIG_FILE) (DQ <' (y/n/h)?'>) } {(DQ <y>)} {(DQ <backup_config_file_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUFFIX='> name:SUFFIX) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<date>} {(SQ <'+%d%h%Y.%H:%M:%S'>)}) right: <Id.Backtick_Right '`'> ) } spids: [5202] ) ] redirects: [] ) (C {<cp>} {<-p>} {($ Id.VSub_DollarName CONFIG_FILE)} {(${ Id.VSub_Name CONFIG_FILE) <-> (${ Id.VSub_Name SUFFIX)} ) (C {<echo>} { (DQ <' Saved existing '> ($ Id.VSub_DollarName CONFIG_FILE) <' as '> (${ Id.VSub_Name CONFIG_FILE) <-> (${ Id.VSub_Name SUFFIX) ) } ) ] spids: [5174 5187] ) ] else_action: [] redirects: [] ) ] spids: [5080 5091] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: check_back_mapping_file body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName MAP_FILE)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<display_msg>} {<backup_mapping_file>}) (C {<get_confirm>} {(DQ <'Do you wish to continue (y/n/h)?'>)} {(DQ <n>)} {(DQ <backup_mapping_file_cont_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<cleanup>}) terminator: <Id.Op_Semi _> ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [5301 5314] ) ] else_action: [] redirects: [] ) (C {<get_confirm>} {(DQ <'Do you wish to backup the map file '>) (${ Id.VSub_Name MAP_FILE) (DQ <' (y/n/h)?'>) } {(DQ <y>)} {(DQ <backup_mapping_file_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUFFIX='> name:SUFFIX) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<date>} {(SQ <'+%d%h%Y.%H:%M:%S'>)}) right: <Id.Backtick_Right '`'> ) } spids: [5385] ) ] redirects: [] ) (C {<cp>} {<-p>} {($ Id.VSub_DollarName MAP_FILE)} {(${ Id.VSub_Name MAP_FILE) <-> (${ Id.VSub_Name SUFFIX)} ) (C {<echo>} { (DQ <' Saved existing '> ($ Id.VSub_DollarName MAP_FILE) <' as '> (${ Id.VSub_Name MAP_FILE) <-> (${ Id.VSub_Name SUFFIX) ) } ) ] spids: [5357 5370] ) ] else_action: [] redirects: [] ) ] spids: [5263 5274] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName MAP_FILE))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName DEFAULT_MAP_FILE))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<display_msg>} {<warn_n2l_mode>}) (C {<get_confirm>} {(DQ <'Do you wish to continue (y/n/h)?'>)} {(DQ <n>)} {(DQ <warn_n2l_mode_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<cleanup>}) terminator: <Id.Op_Semi _> ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [5479 5492] ) ] else_action: [] redirects: [] ) ] spids: [5435 5452] ) ] else_action: [] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: put_config_file_copyright_info body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (C {<grep>} { (DQ <'ident\t'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'@(#)'> ($ Id.VSub_DollarName PROG) ) } {($ Id.VSub_DollarName ABS_PROG)} ) (command.Simple words: [ {<sed>} {(DQ <'s/'> (${ Id.VSub_Name PROG) <'/'> (${ Id.VSub_Name NEW_NAME) <'/g'>)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.Simple words: [ {<echo>} { (DQ <'#\n'> <'# CDDL HEADER START\n'> <'#\n'> <'# The contents of this file are subject to the terms of the\n'> <'# Common Development and Distribution License (the '> ) <License> (DQ <').\n'> <'# You may not use this file except in compliance with the License.\n'> <'#\n'> <'# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE\n'> <'# or http://www.opensolaris.org/os/licensing.\n'> <'# See the License for the specific language governing permissions\n'> <'# and limitations under the License.\n'> <'#\n'> <'# When distributing Covered Code, include this CDDL HEADER in each\n'> <'# file and include the License file at usr/src/OPENSOLARIS.LICENSE.\n'> <'# If applicable, add the following below this CDDL HEADER, with the\n'> <'# fields enclosed by brackets '> ) <Id.Lit_LBracket '['> <Id.Lit_RBracket ']'> (DQ <' replaced with your own identifying\n'> <'# information: Portions Copyright [yyyy] [name of copyright owner]\n'> <'#\n'> <'# CDDL HEADER END\n'> <'#\n'> <'#\n'> < '# Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.\n' > <'#'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPconfigDN body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans>} {(DQ <'DN for configuration information (h=help):'>)}) (command.Case to_match: {(DQ ($ Id.VSub_DollarName ANS))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'>} {<help>} {<Help>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')} ] action: [(C {<display_msg>} {<nisLDAPconfigDN_help>})] spids: [5645 5660 5666 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [5669 5671 5675 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPconfigDN='> name: nisLDAPconfigDN ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name ANS))} spids: [5682] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ANS))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ (${ Id.VSub_Name DEF_nisLDAPconfigDN))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPconfigDN='> (${ Id.VSub_Name ANS))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [5693 5713] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ANS))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'configDN_flag='> name: configDN_flag ) op: assign_op.Equal rhs: {<1>} spids: [5755] ) ] redirects: [] ) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPconfigPreferredServerList body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans_req>} {(DQ <'Preferred server list for configuration information (h=help):'>)} ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName ANS))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'>} {<help>} {<Help>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')} ] action: [(C {<display_msg>} {<nisLDAPconfigPreferredServerList_help>})] spids: [5794 5809 5815 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [5818 5820 5824 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPconfigPreferredServerList='> name: nisLDAPconfigPreferredServerList ) op: assign_op.Equal rhs: {(${ Id.VSub_Name ANS)} spids: [5831] ) ] redirects: [] ) (command.Simple words: [{<echo>} {(DQ <'nisLDAPconfigPreferredServerList='> (${ Id.VSub_Name ANS))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPconfigAuthenticationMethod body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_AUTHMETHOD='> name:_AUTHMETHOD) op: assign_op.Equal rhs: {(DQ )} spids: [5859] ) ] redirects: [] ) (C {<echo>} {(DQ <'Select the Authentication Method for configuration server :'>)}) (C {<config_auth_menu_handler>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPconfigAuthenticationMethod='> name: nisLDAPconfigAuthenticationMethod ) op: assign_op.Equal rhs: {(${ Id.VSub_Name _AUTHMETHOD)} spids: [5873] ) ] redirects: [] ) (command.Simple words: [ {<echo>} {(DQ <'nisLDAPconfigAuthenticationMethod='> (${ Id.VSub_Name _AUTHMETHOD))} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPconfigTLS body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_TLSMETHOD='> name:_TLSMETHOD) op: assign_op.Equal rhs: {(DQ )} spids: [5901] ) ] redirects: [] ) (C {<echo>} {(DQ <'Select the Transport Layer Security (TLS) for configuration server :'>)}) (C {<tls_menu_handler>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPconfigTLS='> name: nisLDAPconfigTLS ) op: assign_op.Equal rhs: {(${ Id.VSub_Name _TLSMETHOD)} spids: [5915] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name _TLSMETHOD))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ (${ Id.VSub_Name DEF_TLS))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPconfigTLS='> (${ Id.VSub_Name _TLSMETHOD))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [5924 5946] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPconfigTLSCertificateDBPath body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans>} {(DQ <'Path with TLS Certificate DB for configuration server (h=help):'>)} {(DQ (${ Id.VSub_Name DEF_TLSCertificateDBPath))} ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName ANS))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'>} {<help>} {<Help>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')} ] action: [(C {<display_msg>} {<TLSCertificateDBPath_help>})] spids: [6007 6022 6028 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [6031 6033 6037 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPconfigTLSCertificateDBPath='> name: nisLDAPconfigTLSCertificateDBPath ) op: assign_op.Equal rhs: {(${ Id.VSub_Name ANS)} spids: [6044] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ANS))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ (${ Id.VSub_Name DEF_TLSCertificateDBPath))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} {(DQ <'nisLDAPconfigTLSCertificateDBPath='> (${ Id.VSub_Name ANS))} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [6053 6073] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPconfigProxyUser body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans_req>} {(DQ <'Proxy user bind DN to obtain configuration information (h=help):'>)} ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName ANS))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'>} {<help>} {<Help>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')} ] action: [(C {<display_msg>} {<nisLDAPconfigProxyUser_help>})] spids: [6126 6141 6147 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [6150 6152 6156 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPconfigProxyUser='> name: nisLDAPconfigProxyUser ) op: assign_op.Equal rhs: {(${ Id.VSub_Name ANS)} spids: [6163] ) ] redirects: [] ) (command.Simple words: [{<echo>} {(DQ <'nisLDAPconfigProxyUser='> (${ Id.VSub_Name ANS))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPconfigProxyPassword body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_passwd>} {(DQ <'Proxy user password to obtain configuration information :'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPconfigProxyPassword='> name: nisLDAPconfigProxyPassword ) op: assign_op.Equal rhs: {(${ Id.VSub_Name ANS)} spids: [6197] ) ] redirects: [] ) (command.Simple words: [{<echo>} {(DQ <'nisLDAPconfigProxyPassword='> (${ Id.VSub_Name ANS))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<display_msg>} {<ProxyPassword_warn>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_preferredServerList body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans_req>} {(DQ <'Preferred server list for mapping data to/from LDAP (h=help):'>)} ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName ANS))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'>} {<help>} {<Help>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')} ] action: [(C {<display_msg>} {<preferredServerList_help>})] spids: [6257 6272 6278 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [6281 6283 6287 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'preferredServerList='> name: preferredServerList ) op: assign_op.Equal rhs: {(${ Id.VSub_Name ANS)} spids: [6294] ) ] redirects: [] ) (command.Simple words: [{<echo>} {(DQ <'preferredServerList='> (${ Id.VSub_Name ANS))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_authenticationMethod body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_AUTHMETHOD='> name:_AUTHMETHOD) op: assign_op.Equal rhs: {(DQ )} spids: [6322] ) ] redirects: [] ) (C {<echo>} {(DQ <'Select the Authentication Method for mapping data to/from LDAP :'>)}) (C {<auth_menu_handler>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'authenticationMethod='> name: authenticationMethod ) op: assign_op.Equal rhs: {(${ Id.VSub_Name _AUTHMETHOD)} spids: [6336] ) ] redirects: [] ) (command.Simple words: [{<echo>} {(DQ <'authenticationMethod='> (${ Id.VSub_Name _AUTHMETHOD))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPTLS body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_TLSMETHOD='> name:_TLSMETHOD) op: assign_op.Equal rhs: {(DQ )} spids: [6364] ) ] redirects: [] ) (C {<echo>} {(DQ <'Select the Transport Layer Security (TLS) for mapping data to/from LDAP :'>)} ) (C {<tls_menu_handler>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nisLDAPTLS='> name:nisLDAPTLS) op: assign_op.Equal rhs: {(${ Id.VSub_Name _TLSMETHOD)} spids: [6378] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name _TLSMETHOD))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ (${ Id.VSub_Name DEF_TLS))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPTLS='> (${ Id.VSub_Name _TLSMETHOD))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [6387 6409] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPTLSCertificateDBPath body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans>} {(DQ <'Path with TLS Certificate DB for LDAP data server (h=help):'>)} {(DQ (${ Id.VSub_Name DEF_nisLDAPTLSCertificateDBPath))} ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName ANS))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'>} {<help>} {<Help>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')} ] action: [(C {<display_msg>} {<TLSCertificateDBPath_help>})] spids: [6470 6485 6491 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [6494 6496 6500 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPTLSCertificateDBPath='> name: nisLDAPTLSCertificateDBPath ) op: assign_op.Equal rhs: {(${ Id.VSub_Name ANS)} spids: [6507] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ANS))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ (${ Id.VSub_Name DEF_TLSCertificateDBPath))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPTLSCertificateDBPath='> (${ Id.VSub_Name ANS))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [6516 6536] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPproxyUser body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans_req>} {(DQ <'Proxy user bind DN to read/write data from/to LDAP (h=help):'>)} ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName ANS))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'>} {<help>} {<Help>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')} ] action: [(C {<display_msg>} {<nisLDAPproxyUser_help>})] spids: [6590 6605 6611 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [6614 6616 6620 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPproxyUser='> name: nisLDAPproxyUser ) op: assign_op.Equal rhs: {(${ Id.VSub_Name ANS)} spids: [6627] ) ] redirects: [] ) (command.Simple words: [{<echo>} {(DQ <'nisLDAPproxyUser='> (${ Id.VSub_Name ANS))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPproxyPassword body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_passwd>} {(DQ <'Proxy user password to read/write data from/to LDAP :'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPproxyPassword='> name: nisLDAPproxyPassword ) op: assign_op.Equal rhs: {(${ Id.VSub_Name ANS)} spids: [6661] ) ] redirects: [] ) (command.Simple words: [{<echo>} {(DQ <'nisLDAPproxyPassword='> (${ Id.VSub_Name ANS))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<display_msg>} {<ProxyPassword_warn>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPbindTimeout body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_pos_int>} {(DQ <'Timeout value (in seconds) for LDAP bind operation (h=help):'>)} {(DQ (${ Id.VSub_Name DEF_nisLDAPbindTimeout))} {(DQ <nisLDAPbindTimeout_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPbindTimeout='> name: nisLDAPbindTimeout ) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [6714] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName NUM)} {<-ne>} {(${ Id.VSub_Name DEF_nisLDAPbindTimeout)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPbindTimeout='> (${ Id.VSub_Name NUM))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [6723 6738] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPsearchTimeout body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_pos_int>} {(DQ <'Timeout value (in seconds) for LDAP search operation (h=help):'>)} {(DQ (${ Id.VSub_Name DEF_nisLDAPsearchTimeout))} {(DQ <nisLDAPsearchTimeout_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPsearchTimeout='> name: nisLDAPsearchTimeout ) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [6785] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName NUM)} {<-ne>} {(${ Id.VSub_Name DEF_nisLDAPsearchTimeout)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPsearchTimeout='> (${ Id.VSub_Name NUM))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [6794 6809] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPmodifyTimeout body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_pos_int>} {(DQ <'Timeout value (in seconds) for LDAP modify operation (h=help):'>)} {(DQ (${ Id.VSub_Name DEF_nisLDAPmodifyTimeout))} {(DQ <nisLDAPmodifyTimeout_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPmodifyTimeout='> name: nisLDAPmodifyTimeout ) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [6856] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName NUM)} {<-ne>} {(${ Id.VSub_Name DEF_nisLDAPmodifyTimeout)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPmodifyTimeout='> (${ Id.VSub_Name NUM))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [6865 6880] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPaddTimeout body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_pos_int>} {(DQ <'Timeout value (in seconds) for LDAP add operation (h=help):'>)} {(DQ (${ Id.VSub_Name DEF_nisLDAPaddTimeout))} {(DQ <nisLDAPaddTimeout_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPaddTimeout='> name: nisLDAPaddTimeout ) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [6927] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName NUM)} {<-ne>} {(${ Id.VSub_Name DEF_nisLDAPaddTimeout)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPaddTimeout='> (${ Id.VSub_Name NUM))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [6936 6951] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPdeleteTimeout body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_pos_int>} {(DQ <'Timeout value (in seconds) for LDAP delete operation (h=help):'>)} {(DQ (${ Id.VSub_Name DEF_nisLDAPdeleteTimeout))} {(DQ <nisLDAPdeleteTimeout_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPdeleteTimeout='> name: nisLDAPdeleteTimeout ) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [6998] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName NUM)} {<-ne>} {(${ Id.VSub_Name DEF_nisLDAPdeleteTimeout)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPdeleteTimeout='> (${ Id.VSub_Name NUM))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [7007 7022] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPsearchTimeLimit body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_pos_int>} {(DQ <'Time limit (in seconds) for search operation on LDAP server (h=help):'>)} {(DQ (${ Id.VSub_Name DEF_nisLDAPsearchTimeLimit))} {(DQ <nisLDAPsearchTimeLimit_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPsearchTimeLimit='> name: nisLDAPsearchTimeLimit ) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [7069] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName NUM)} {<-ne>} {(${ Id.VSub_Name DEF_nisLDAPsearchTimeLimit)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPsearchTimeLimit='> (${ Id.VSub_Name NUM))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [7078 7093] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPsearchSizeLimit body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_pos_int>} {(DQ <'Size limit (in bytes) for search operation on LDAP server (h=help):'>)} {(DQ (${ Id.VSub_Name DEF_nisLDAPsearchSizeLimit))} {(DQ <nisLDAPsearchSizeLimit_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPsearchSizeLimit='> name: nisLDAPsearchSizeLimit ) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [7140] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName NUM)} {<-ne>} {(${ Id.VSub_Name DEF_nisLDAPsearchSizeLimit)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPsearchSizeLimit='> (${ Id.VSub_Name NUM))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [7149 7164] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPfollowReferral body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_confirm>} {(DQ <'Should the ypserv follow LDAP referrals (y/n/h):'>)} {(DQ <n>)} {(DQ <nisLDAPfollowReferral_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_ANS='> name:_ANS) op: assign_op.Equal rhs: {(DQ <yes>)} spids: [7225] ) ] redirects: [] ) ] spids: [7209 7222] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_ANS='> name:_ANS) op: assign_op.Equal rhs: {(DQ <no>)} spids: [7233] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name _ANS))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ (${ Id.VSub_Name DEF_nisLDAPfollowReferral))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPfollowReferral='> (${ Id.VSub_Name _ANS))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [7244 7266] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPretrieveErrorAction body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_RET_ERR_ACT='> name:_RET_ERR_ACT) op: assign_op.Equal rhs: {(DQ )} spids: [7294] ) ] redirects: [] ) (C {<echo>} {(DQ <'Select the action to be taken in case of LDAP retrieval error :'>)}) (C {<retrieve_error_action_menu_handler>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPretrieveErrorAction='> name: nisLDAPretrieveErrorAction ) op: assign_op.Equal rhs: {(${ Id.VSub_Name _RET_ERR_ACT)} spids: [7308] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name _RET_ERR_ACT))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ (${ Id.VSub_Name DEF_nisLDAPretrieveErrorAction))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} {(DQ <'nisLDAPretrieveErrorAction='> (${ Id.VSub_Name _RET_ERR_ACT))} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [7317 7339] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPretrieveErrorAttempts body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_pos_int>} {(DQ <'Number of attempts in case of LDAP retrieval error (h=help):'>)} {(DQ ($ Id.VSub_DollarName SUG_nisLDAPretrieveErrorAttempts))} {(DQ <nisLDAPretrieveErrorAttempts_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPretrieveErrorAttempts='> name: nisLDAPretrieveErrorAttempts ) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [7387] ) ] redirects: [] ) (command.Simple words: [{<echo>} {(DQ <'nisLDAPretrieveErrorAttempts='> (${ Id.VSub_Name NUM))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPretrieveErrorTimeout body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName nisLDAPretrieveErrorAttempts)} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (C {<get_pos_int>} {(DQ <'Timeout (in seconds) between each new attempt to retrieve LDAP data (h=help):'>)} {(DQ (${ Id.VSub_Name DEF_nisLDAPretrieveErrorTimeout))} {(DQ <nisLDAPretrieveErrorTimeout_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPretrieveErrorTimeout='> name: nisLDAPretrieveErrorTimeout ) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [7460] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName NUM)} {<-ne>} {(${ Id.VSub_Name DEF_nisLDAPretrieveErrorTimeout)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPretrieveErrorTimeout='> (${ Id.VSub_Name NUM))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [7469 7484] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPstoreErrorAction body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_STOR_ERR_ACT='> name:_STOR_ERR_ACT) op: assign_op.Equal rhs: {(DQ )} spids: [7512] ) ] redirects: [] ) (C {<echo>} {(DQ <'Select the action to be taken in case of LDAP store error :'>)}) (C {<store_error_action_menu_handler>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPstoreErrorAction='> name: nisLDAPstoreErrorAction ) op: assign_op.Equal rhs: {(${ Id.VSub_Name _STOR_ERR_ACT)} spids: [7526] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name _STOR_ERR_ACT))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ (${ Id.VSub_Name DEF_nisLDAPstoreErrorAction))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} {(DQ <'nisLDAPstoreErrorAction='> (${ Id.VSub_Name _STOR_ERR_ACT))} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [7535 7557] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPstoreErrorAttempts body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName nisLDAPstoreErrorAction))} {<Id.Lit_Equals '='>} {(DQ <fail>)} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (C {<get_pos_int>} {(DQ <'Number of attempts in case of LDAP store error (h=help):'>)} {(DQ ($ Id.VSub_DollarName SUG_nisLDAPstoreErrorAttempts))} {(DQ <nisLDAPstoreErrorAttempts_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPstoreErrorAttempts='> name: nisLDAPstoreErrorAttempts ) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [7633] ) ] redirects: [] ) (command.Simple words: [{<echo>} {(DQ <'nisLDAPstoreErrorAttempts='> (${ Id.VSub_Name NUM))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPstoreErrorTimeout body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName nisLDAPstoreErrorAction))} {<Id.Lit_Equals '='>} {(DQ <fail>)} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName nisLDAPstoreErrorAttempts)} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (C {<get_pos_int>} {(DQ <'Timeout (in seconds) between each new attempt to write LDAP data (h=help):'>)} {(DQ (${ Id.VSub_Name DEF_nisLDAPstoreErrorTimeout))} {(DQ <nisLDAPstoreErrorTimeout_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nisLDAPstoreErrorTimeout='> name: nisLDAPstoreErrorTimeout ) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [7732] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName NUM)} {<-ne>} {(${ Id.VSub_Name DEF_nisLDAPstoreErrorTimeout)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPstoreErrorTimeout='> (${ Id.VSub_Name NUM))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [7741 7756] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_config_file body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_CONFIG_FILE='> name:_CONFIG_FILE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName CONFIG_FILE)} spids: [7799] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONFIG_FILE='> name:CONFIG_FILE) op: assign_op.Equal rhs: {(${ Id.VSub_Name TMPDIR) <'/'> (${ Id.VSub_Name TMPCONF) <.> ($ Id.VSub_Dollar '$')} spids: [7802] ) ] redirects: [] ) (C {<echo>} { (DQ <'Generating config file temporarily as '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name CONFIG_FILE) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } ) (C {<put_config_file_copyright_info>}) (command.Simple words: [ {<echo>} { (DQ <'#\n'> <'# Configuration file for ypserv(1M); see ypserv(4) for more information,\n'> <'# and NISLDAPmapping(4) for configuration of NIS to LDAP mapping.\n'> <'\n'> <'# Unless otherwise noted, commented lines show default values.\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<echo>} { (DQ <'# Where to look for configuration information in LDAP. Leave empty or\n'> <'# undefined to use this file, in which case the values of the other \n'> <'# \'nisLdapConfig*\' attributes are ignored. \n'> <'#\n'> <'#nisLDAPconfigDN='> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPconfigDN>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Server(s) for configuration information. There is no default;\n'> <'# use the value on the line below for an LDAP server running on\n'> <'# this machine, at port 389.\n'> <'#nisLDAPconfigPreferredServerList=127.0.0.1:389'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName configDN_flag)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<get_nisLDAPconfigPreferredServerList>}) ] ) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Authentication method(s) to obtain configuration information.\n'> <'#'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName configDN_flag)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<get_nisLDAPconfigAuthenticationMethod>}) ] ) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Transport layer security for configuration information\n'> <'#\n'> <'#nisLDAPconfigTLS='> (${ Id.VSub_Name DEF_TLS) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName configDN_flag)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<get_nisLDAPconfigTLS>}) ] ) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Certificate DB for transport layer security\n'> <'#\n'> <'#nisLDAPconfigTLSCertificateDBPath='> (${ Id.VSub_Name DEF_TLSCertificateDBPath) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name nisLDAPconfigTLS))} {<Id.Lit_Equals '='>} {(DQ <ssl>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName configDN_flag)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<get_nisLDAPconfigTLSCertificateDBPath>}) ] ) ] spids: [7996 8015] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Proxy user(s) to obtain configuration information. The line below\n'> <'# is an example of the format.\n'> <'#\n'> <'#nisLDAPconfigProxyUser=cn=nisAdmin,ou=People,'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name nisLDAPconfigAuthenticationMethod))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <none>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName configDN_flag)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<get_nisLDAPconfigProxyUser>}) ] ) ] spids: [8055 8075] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Password for proxy user. Must be supplied if the authentication method\n'> <'# requires a password. If a password appears in this file, it should be\n'> <'# protected appropriately against access by unauthorized users.\n'> <'#\n'> <'#nisLDAPconfigProxyPassword='> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name nisLDAPconfigAuthenticationMethod))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <none>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName configDN_flag)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<get_nisLDAPconfigProxyPassword>}) ] ) ] spids: [8113 8133] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Server list for mapping data to/from LDAP. There is no default;\n'> <'# use the value on the line below for an LDAP server running on\n'> <'# this machine, at port 389.\n'> <'#preferredServerList=127.0.0.1:389'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_preferredServerList>}) (command.Simple words: [ {<echo>} {(DQ <'\n'> <'\n'> <'# Authentication method for mapping data to/from LDAP\n'> <'#'>)} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_authenticationMethod>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Transport layer security for mapping data to/from LDAP.\n'> <'#\n'> <'#nisLDAPTLS='> (${ Id.VSub_Name DEF_TLS) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPTLS>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Certificate DB for transport layer security\n'> <'#\n'> <'#nisLDAPTLSCertificateDBPath='> (${ Id.VSub_Name DEF_TLSCertificateDBPath) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name nisLDAPTLS))} {<Id.Lit_Equals '='>} {(DQ <ssl>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<get_nisLDAPTLSCertificateDBPath>})] spids: [8235 8254] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Proxy user for ypserv. Assumed to have appropriate permission to read\n'> <'# and/or create or modify LDAP data. The line below is an example of the\n'> <'# format.\n'> <'#\n'> <'#nisLDAPproxyUser=cn=nisAdmin,ou=People,'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name authenticationMethod))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <none>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<get_nisLDAPproxyUser>})] spids: [8283 8303] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Password for proxy user. Must be supplied if the authentication method\n'> <'# requires a password. If a password appears in this file, it should be\n'> <'# protected appropriately against unauthorized access.\n'> <'#\n'> <'#nisLDAPproxyPassword='> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name authenticationMethod))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <none>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<get_nisLDAPproxyPassword>})] spids: [8329 8349] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Timeouts and time/size limits for LDAP operations.\n'> <'#\n'> <'#nisLDAPbindTimeout='> (${ Id.VSub_Name DEF_nisLDAPbindTimeout) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPbindTimeout>}) (command.Simple words: [ {<echo>} {(DQ <'\n'> <'#nisLDAPsearchTimeout='> (${ Id.VSub_Name DEF_nisLDAPsearchTimeout))} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPsearchTimeout>}) (command.Simple words: [ {<echo>} {(DQ <'\n'> <'#nisLDAPmodifyTimeout='> (${ Id.VSub_Name DEF_nisLDAPmodifyTimeout))} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPmodifyTimeout>}) (command.Simple words: [ {<echo>} {(DQ <'\n'> <'#nisLDAPaddTimeout='> (${ Id.VSub_Name DEF_nisLDAPaddTimeout))} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPaddTimeout>}) (command.Simple words: [ {<echo>} {(DQ <'\n'> <'#nisLDAPdeleteTimeout='> (${ Id.VSub_Name DEF_nisLDAPdeleteTimeout))} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPdeleteTimeout>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'#nisLDAPsearchTimeLimit='> (${ Id.VSub_Name DEF_nisLDAPsearchTimeLimit)) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPsearchTimeLimit>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'#nisLDAPsearchSizeLimit='> (${ Id.VSub_Name DEF_nisLDAPsearchSizeLimit)) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPsearchSizeLimit>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Should the ypserv follow LDAP referrals ?\n'> <'#\n'> <'#nisLDAPfollowReferral='> (${ Id.VSub_Name DEF_nisLDAPfollowReferral) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPfollowReferral>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> < '# Action, number of attempts, and timeout following an LDAP retrieval error\n' > <'#\n'> <'#nisLDAPretrieveErrorAction='> (${ Id.VSub_Name DEF_nisLDAPretrieveErrorAction) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPretrieveErrorAction>}) (command.Simple words: [{<echo>} {(DQ <'\n'> <'#nisLDAPretrieveErrorAttempts='>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPretrieveErrorAttempts>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'#nisLDAPretrieveErrorTimeout='> (${ Id.VSub_Name DEF_nisLDAPretrieveErrorTimeout) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPretrieveErrorTimeout>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'\n'> <'# Action, number of attempts, and timeout following an LDAP store error\n'> <'#\n'> <'#nisLDAPstoreErrorAction='> (${ Id.VSub_Name DEF_nisLDAPstoreErrorAction) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPstoreErrorAction>}) (command.Simple words: [{<echo>} {(DQ <'\n'> <'#nisLDAPstoreErrorAttempts='>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPstoreErrorAttempts>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'#nisLDAPstoreErrorTimeout='> (${ Id.VSub_Name DEF_nisLDAPstoreErrorTimeout) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName CONFIG_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_nisLDAPstoreErrorTimeout>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR_TO_CREATE='> name:DIR_TO_CREATE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<dirname>} {(${ Id.VSub_Name _CONFIG_FILE)}) right: <Id.Backtick_Right '`'> ) } spids: [8643] ) ] redirects: [] ) (C {<mkdir>} {<-p>} {(${ Id.VSub_Name DIR_TO_CREATE)}) (C {<echo>} { (DQ <'Moving output from temporary file ('> ($ Id.VSub_DollarName CONFIG_FILE) <') to actual file ('> ($ Id.VSub_DollarName _CONFIG_FILE) <')'> ) } ) (C {<mv>} {($ Id.VSub_DollarName CONFIG_FILE)} {($ Id.VSub_DollarName _CONFIG_FILE)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONFIG_FILE='> name:CONFIG_FILE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName _CONFIG_FILE)} spids: [8683] ) ] redirects: [] ) (C {<echo>} { (DQ <'Finished creation of config file ( '> ($ Id.VSub_DollarName _CONFIG_FILE) <' )'>) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: put_mapping_file_copyright_info body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (C {<grep>} { (DQ <'ident\t'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'@(#)'> ($ Id.VSub_DollarName PROG) ) } {($ Id.VSub_DollarName ABS_PROG)} ) (C {<sed>} {(DQ <'s/ ident/pragma ident/g'>)}) (command.Simple words: [ {<sed>} {(DQ <'s/'> (${ Id.VSub_Name PROG) <'/'> (${ Id.VSub_Name NEW_NAME) <'/g'>)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.Simple words: [ {<echo>} { (DQ <'#\n'> <'# CDDL HEADER START\n'> <'#\n'> <'# The contents of this file are subject to the terms of the\n'> <'# Common Development and Distribution License (the '> ) <License> (DQ <').\n'> <'# You may not use this file except in compliance with the License.\n'> <'#\n'> <'# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE\n'> <'# or http://www.opensolaris.org/os/licensing.\n'> <'# See the License for the specific language governing permissions\n'> <'# and limitations under the License.\n'> <'#\n'> <'# When distributing Covered Code, include this CDDL HEADER in each\n'> <'# file and include the License file at usr/src/OPENSOLARIS.LICENSE.\n'> <'# If applicable, add the following below this CDDL HEADER, with the\n'> <'# fields enclosed by brackets '> ) <Id.Lit_LBracket '['> <Id.Lit_RBracket ']'> (DQ <' replaced with your own identifying\n'> <'# information: Portions Copyright [yyyy] [name of copyright owner]\n'> <'#\n'> <'# CDDL HEADER END\n'> <'#\n'> <'#\n'> < '# Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.\n' > <'#\n'> <'#-------------------------------------------------------------------\n'> <'#'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_all_var_yp_domain_list body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VARYP_DMN_LIST='> name:VARYP_DMN_LIST) op: assign_op.Equal rhs: {(DQ )} spids: [8827] ) ] redirects: [] ) (command.ForEach iter_names: [entry] iterable: (for_iter.Words words:[{<'/var/yp/'> <Id.Lit_Star '*'>}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DMN='> name:DMN) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_DollarName entry)}) right: <Id.Backtick_Right '`'> ) } spids: [8844] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-d>} {(DQ <'/var/yp/'> ($ Id.VSub_DollarName DMN))} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<-f>} { (DQ <'/var/yp/binding/'> ($ Id.VSub_DollarName DMN) <'/ypservers'> ) } {<Id.Lit_RBracket ']'>} ) ] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'VARYP_DMN_LIST='> name: VARYP_DMN_LIST ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName VARYP_DMN_LIST) <' '> ($ Id.VSub_DollarName DMN) ) } spids: [8885] ) ] redirects: [] ) ] spids: [8854 8882] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<VARYP_DMN_LIST>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName VARYP_DMN_LIST))} ) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_n2l_domain_list body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<create_all_var_yp_domain_list>}) (C {<let>} {<Id.Lit_VarLike 'count='> <0>}) (command.ForEach iter_names: [DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName VARYP_DMN_LIST)}]) body: (command.DoGroup children: [ (C {<get_confirm>} { (DQ <'Do you want to store maps from '> (${ Id.VSub_Name DMN) <' domain to LDAP (y/n/h):'> ) } {(DQ <n>)} {(DQ <selectDomain4N2L_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'N2L_DMN_LIST['> name: N2L_DMN_LIST index: ($ Id.Lit_ArithVarLike count) ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DMN)} spids: [9012] ) ] redirects: [] ) (C {<let>} {<Id.Lit_VarLike 'count='> (DQ <'count + 1'>)}) ] spids: [8996 9009] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'N2L_DMN_CNT='> name:N2L_DMN_CNT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName count)} spids: [9033] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<Id.Lit_VarLike 'N2L_DMN_LIST='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name N2L_DMN_LIST> var_name: N2L_DMN_LIST bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<Id.Lit_VarLike 'N2L_DMN_CNT='> ($ Id.VSub_DollarName N2L_DMN_CNT)}) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_map_lists body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ALL_DMN_ALL_MAPLIST='> name: ALL_DMN_ALL_MAPLIST ) op: assign_op.Equal rhs: {(DQ )} spids: [9119] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ALL_DMN_DEF_MAPLIST='> name: ALL_DMN_DEF_MAPLIST ) op: assign_op.Equal rhs: {(DQ )} spids: [9123] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ALL_DMN_CUST_MAPLIST='> name: ALL_DMN_CUST_MAPLIST ) op: assign_op.Equal rhs: {(DQ )} spids: [9127] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ALL_DMN_AUTO_CUST_MAPLIST='> name: ALL_DMN_AUTO_CUST_MAPLIST ) op: assign_op.Equal rhs: {(DQ )} spids: [9131] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CUST_MAP_NEEDED='> name: CUST_MAP_NEEDED ) op: assign_op.Equal rhs: {<0>} spids: [9139] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CUST_CMT_NEEDED='> name: CUST_CMT_NEEDED ) op: assign_op.Equal rhs: {<0>} spids: [9142] ) ] redirects: [] ) (C {<let>} {<Id.Lit_VarLike 'count='> <0>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName count)} right: {($ Id.VSub_DollarName N2L_DMN_CNT)} ) redirects: [] ) ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DMN='> name:DMN) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name N2L_DMN_LIST> var_name: N2L_DMN_LIST bracket_op: (bracket_op.ArrayIndex expr:($ Id.Lit_ArithVarLike count)) right: <Id.Right_DollarBrace '}'> ) } spids: [9168] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAPDIR='> name:MAPDIR) op: assign_op.Equal rhs: {<'/var/yp/'> (${ Id.VSub_Name DMN)} spids: [9177] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ALL_MAPLIST='> name: ALL_MAPLIST ) op: assign_op.Equal rhs: {(DQ )} spids: [9189] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_MAPLIST='> name: DEF_MAPLIST ) op: assign_op.Equal rhs: {(DQ )} spids: [9194] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CUST_MAPLIST='> name: CUST_MAPLIST ) op: assign_op.Equal rhs: {(DQ )} spids: [9199] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'AUTO_CUST_MAPLIST='> name: AUTO_CUST_MAPLIST ) op: assign_op.Equal rhs: {(DQ )} spids: [9204] ) ] redirects: [] ) (command.ForEach iter_names: [dbmfile] iterable: (for_iter.Words words: [{($ Id.VSub_DollarName MAPDIR) <'/'> <Id.Lit_Star '*'> <.dir>}] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAP='> name:MAP) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_DollarName dbmfile)} {<.dir>}) right: <Id.Backtick_Right '`'> ) } spids: [9225] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName MAP)} right: {<LDAP_> <Id.Lit_Other '*'>} ) redirects: [] ) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName MAP)} right: {(DQ )} ) redirects: [] ) (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName MAPDIR) <'/'> (${ Id.VSub_Name MAP) <.pag> } {<Id.Lit_RBracket ']'>} ) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName MAP)} right: {<ageing.byname>} ) redirects: [] ) ] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ALL_MAPLIST='> name: ALL_MAPLIST ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName ALL_MAPLIST) <' '> ($ Id.VSub_DollarName MAP) ) } spids: [9301] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<present>} {($ Id.VSub_DollarName MAP)} {($ Id.VSub_DollarName DEFAULT_NIS_MAPS)} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEF_MAPLIST='> name: DEF_MAPLIST ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName DEF_MAPLIST) <' '> ($ Id.VSub_DollarName MAP) ) } spids: [9322] ) ] redirects: [] ) ] spids: [9310 9319] ) (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {($ Id.VSub_DollarName MAP)} right: {<auto.> <Id.Lit_Other '*'>} ) redirects: [] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'AUTO_CUST_MAPLIST='> name: AUTO_CUST_MAPLIST ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName AUTO_CUST_MAPLIST) <' '> ($ Id.VSub_DollarName MAP) ) } spids: [9348] ) ] redirects: [] ) ] spids: [9331 9345] ) ] else_action: [ (C {<get_confirm>} { (DQ < 'Do you want the mapping information to be generated for ' > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName MAP) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <' map of '> ($ Id.VSub_DollarName DMN) <' domain (y/n/h)?'> ) } {(DQ <n>)} {(DQ <generate_mapping_info_for_cust_map_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CUST_MAPLIST='> name: CUST_MAPLIST ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName CUST_MAPLIST) <' '> ($ Id.VSub_DollarName MAP) ) } spids: [9404] ) ] redirects: [] ) ] spids: [9388 9401] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ALL_MAPLIST='> name: ALL_MAPLIST ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<remove>} {($ Id.VSub_DollarName MAP)} {($ Id.VSub_DollarName ALL_MAPLIST)} ) right: <Id.Eof_RParen _> ) } spids: [9423] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] ) ] spids: [9242 9298] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ALL_DMN_ALL_MAPLIST='> name: ALL_DMN_ALL_MAPLIST ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<merge_lists>} {($ Id.VSub_DollarName ALL_DMN_ALL_MAPLIST)} {($ Id.VSub_DollarName ALL_MAPLIST)} ) right: <Id.Eof_RParen _> ) } spids: [9453] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ALL_DMN_DEF_MAPLIST='> name: ALL_DMN_DEF_MAPLIST ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<merge_lists>} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} {($ Id.VSub_DollarName DEF_MAPLIST)} ) right: <Id.Eof_RParen _> ) } spids: [9463] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ALL_DMN_CUST_MAPLIST='> name: ALL_DMN_CUST_MAPLIST ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<merge_lists>} {($ Id.VSub_DollarName ALL_DMN_CUST_MAPLIST)} {($ Id.VSub_DollarName CUST_MAPLIST)} ) right: <Id.Eof_RParen _> ) } spids: [9473] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ALL_DMN_AUTO_CUST_MAPLIST='> name: ALL_DMN_AUTO_CUST_MAPLIST ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<merge_lists>} {($ Id.VSub_DollarName ALL_DMN_AUTO_CUST_MAPLIST)} {($ Id.VSub_DollarName AUTO_CUST_MAPLIST)} ) right: <Id.Eof_RParen _> ) } spids: [9483] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'ALL_MAPS['> name: ALL_MAPS index: {($ Id.VSub_DollarName count)} ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName ALL_MAPLIST))} spids: [9500] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'DEF_MAPS['> name: DEF_MAPS index: {($ Id.VSub_DollarName count)} ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName DEF_MAPLIST))} spids: [9510] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'CUST_MAPS['> name: CUST_MAPS index: {($ Id.VSub_DollarName count)} ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName CUST_MAPLIST))} spids: [9520] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'AUTO_CUST_MAPS['> name: AUTO_CUST_MAPS index: {($ Id.VSub_DollarName count)} ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName AUTO_CUST_MAPLIST))} spids: [9530] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<Id.Lit_ArrayLhsOpen 'ALL_MAPS['> ($ Id.VSub_DollarName DMN) <Id.Lit_RBracket ']'> } {<Id.Lit_Equals '='>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_MAPS> var_name: ALL_MAPS bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName count)}) right: <Id.Right_DollarBrace '}'> ) } ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<Id.Lit_ArrayLhsOpen 'DEF_MAPS['> ($ Id.VSub_DollarName DMN) <Id.Lit_RBracket ']'> } {<Id.Lit_Equals '='>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DEF_MAPS> var_name: DEF_MAPS bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName count)}) right: <Id.Right_DollarBrace '}'> ) } ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<Id.Lit_ArrayLhsOpen 'CUST_MAPS['> ($ Id.VSub_DollarName DMN) <Id.Lit_RBracket ']'> } {<Id.Lit_Equals '='>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CUST_MAPS> var_name: CUST_MAPS bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName count)}) right: <Id.Right_DollarBrace '}'> ) } ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<Id.Lit_ArrayLhsOpen 'AUTO_CUST_MAPS['> ($ Id.VSub_DollarName DMN) <Id.Lit_RBracket ']'> } {<Id.Lit_Equals '='>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name AUTO_CUST_MAPS> var_name: AUTO_CUST_MAPS bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName count)}) right: <Id.Right_DollarBrace '}'> ) } ) ] ) (C {<let>} {<Id.Lit_VarLike 'count='> (DQ <'count + 1'>)}) ] ) redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<ALL_DMN_ALL_MAPLIST>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName ALL_DMN_ALL_MAPLIST)} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<ALL_DMN_DEF_MAPLIST>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<ALL_DMN_CUST_MAPLIST>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName ALL_DMN_CUST_MAPLIST)} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<ALL_DMN_AUTO_CUST_MAPLIST>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName ALL_DMN_AUTO_CUST_MAPLIST)} ) ] ) (C {<set>} {<-A>} {<ALL_DMN_ALL_MAPS>} {($ Id.VSub_DollarName ALL_DMN_ALL_MAPLIST)}) (C {<set>} {<-A>} {<ALL_DMN_DEF_MAPS>} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)}) (C {<set>} {<-A>} {<ALL_DMN_CUST_MAPS>} {($ Id.VSub_DollarName ALL_DMN_CUST_MAPLIST)}) (C {<set>} {<-A>} {<ALL_DMN_AUTO_CUST_MAPS>} {($ Id.VSub_DollarName ALL_DMN_AUTO_CUST_MAPLIST)} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_CUST_MAPS> var_name: ALL_DMN_CUST_MAPS prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CUST_MAP_NEEDED='> name: CUST_MAP_NEEDED ) op: assign_op.Equal rhs: {<1>} spids: [9805] ) ] redirects: [] ) ] ) (C {<echo>} { (DQ <'\n'> <' This script can place relevant information regarding custom\n'> <' maps at appropriate places in the mapping file which can be\n'> <' helpful in customizing this file.\n'> ) } ) (C {<get_confirm>} {(DQ <'Do you want such information to be generated (y/n/h)?'>)} {(DQ <n>)} {(DQ <generate_comment_info_for_cust_map_help>)} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CUST_CMT_NEEDED='> name: CUST_CMT_NEEDED ) op: assign_op.Equal rhs: {<1>} spids: [9851] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<CUST_MAP_NEEDED>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName CUST_MAP_NEEDED)} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {<CUST_CMT_NEEDED>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName CUST_CMT_NEEDED)} ) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPdomainContext body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<echo>} {(DQ <'\n'> <'# List domains and contexts\n'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ForEach iter_names: [DMN] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name N2L_DMN_LIST> var_name: N2L_DMN_LIST bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<domain_2_dc>} {($ Id.VSub_DollarName DMN)}) (C {<get_ans>} { (DQ <'Enter the naming context for '> ($ Id.VSub_DollarName DMN) <' domain (h=help):'> ) } {(DQ ($ Id.VSub_DollarName _DOM_2_DC))} ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName ANS))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'>} {<help>} {<Help>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\?'> ch: '?' ) } ] action: [(C {<display_msg>} {<nisLDAPdomainContext_help>})] spids: [9989 10004 10010 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [10013 10015 10019 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ANS))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPdomainContext '> ($ Id.VSub_DollarName DMN) <' : '> (${ Id.VSub_Name ANS) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [10034 10051] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} { (DQ <'nisLDAPdomainContext '> ($ Id.VSub_DollarName DMN) <' : '> (${ Id.VSub_Name ANS) ) } ) ] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_nisLDAPyppasswddDomains body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {<echo>} { (DQ <'\n'> <'# List domains for which passwords should be changed. If this is not\n'> <'# present then the value returned by \'domainname\' will be used.\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ForEach iter_names: [DMN] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name N2L_DMN_LIST> var_name: N2L_DMN_LIST bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (C {<get_confirm>} { (DQ <'Enable password changes for '> (${ Id.VSub_Name DMN) <' domain (y/n/h)? '> ) } {(DQ <n>)} {(DQ <nisLDAPyppasswddDomains_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} {(DQ <'nisLDAPyppasswddDomains '> ($ Id.VSub_DollarName DMN))} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [10170 10183] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'#\n'> <'#-------------------------------------------------------------------\n'> <'#'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_nisLDAPdatabaseIdMapping body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {<echo>} { (SQ <'\n'> <'# Associate map names with databaseIds (aliases)\n'> <'\n'> <'# Standard maps\n'> <'nisLDAPdatabaseIdMapping\tethers: ethers.byaddr ethers.byname\n'> <'nisLDAPdatabaseIdMapping\tgroup: group.bygid group.byname\n'> <'nisLDAPdatabaseIdMapping\thosts:[addr="[0-9]*.[0-9]*.[0-9]*.[0-9]*"] \\\n'> <'\t\t\t\thosts.byaddr hosts.byname\n'> <'# Special mapping to handle the YP_MULTI cases\n'> <'nisLDAPdatabaseIdMapping multihosts: \\\n'> <'\t\t\t\t[addr="[0-9]*.[0-9]*.[0-9]*.[0-9]*,*"] \\\n'> <'\t\t\t\thosts.byname\n'> <'nisLDAPdatabaseIdMapping\tnetworks: networks.byaddr networks.byname\n'> <'nisLDAPdatabaseIdMapping\tproject: project.byname project.byprojid\n'> <'nisLDAPdatabaseIdMapping\tprotocols: protocols.byname protocols.bynumber\n'> <'nisLDAPdatabaseIdMapping\tservices: services.byname services.byservicename\n'> <'\n'> <'# netid.byname is built up from the hosts and passwd files using different\n'> <'# mappings. It thus has two associated nisLDAPdatabaseIdMappings.\n'> <'nisLDAPdatabaseIdMapping\tnetid.host:[number="0"] netid.byname\n'> <'nisLDAPdatabaseIdMapping\tnetid.pass:[number="[1-9]*"] netid.byname\n'> <'\n'> < '# The next two are special databaseIds. They associate maps with databaseIds \n' > <'# but additionally identify which maps contain password and password adjunct\n'> <'# information for yppasswdd. \n'> <'nisLDAPdatabaseIdMapping\tpasswd: passwd.byname passwd.byuid\n'> <'\n'> <'# mail.byaddr needs to select entries of the form x@y or x!y\n'> <'nisLDAPdatabaseIdMapping\tmail.mapping:[rf_key="*@*", rf_key="*!*"] \\\n'> <'\t\t\t\tmail.byaddr\n'> <'\n'> <'# publickey.byname\n'> <'# Each entry in publickey map consists of a network user name which\n'> < '# may refer to a host or a user. It also contains a default entry for nobody.\n' > <'# Hence, we need three nisLDAPdatabaseIdmappings to support the three\n'> <'# different types of keys.\n'> <'nisLDAPdatabaseIdMapping keys.host:[rf_key="unix.[a-zA-Z]*@*"] \\\n'> <'\t\t\t\tpublickey.byname\n'> <'nisLDAPdatabaseIdMapping keys.pass:[rf_key="unix.[0-9]*@*"] \\\n'> <'\t\t\t\tpublickey.byname\n'> <'nisLDAPdatabaseIdMapping keys.nobody:[rf_key="nobody"] publickey.byname\n'> <'\n'> <'# Single standard maps. No point aliasing.\n'> <'# mail.aliases \n'> <'# netmasks.byaddr\n'> <'# rpc.bynumber\n'> <'# ypservers\n'> <'\n'> <'# Other maps\n'> <'# ipnodes looks identical to hosts but maps to a different context.\n'> <'nisLDAPdatabaseIdMapping\tipnodes:[addr="*:*"] \\\n'> <'\t\t\t\tipnodes.byaddr ipnodes.byname\n'> <'# Special mapping to handle the YP_MULTI cases\n'> <'nisLDAPdatabaseIdMapping multiipnodes: \\\n'> <'\t\t\t\t[addr="*:*,*"] \\\n'> <'\t\t\t\tipnodes.byname\n'> <'\n'> <'# Other single maps. No point aliasing\n'> <'# audit_user\n'> <'# auth_attr\n'> <'# exec_attr\n'> <'# prof_attr\n'> <'# user_attr\n'> <'# auto.home\n'> <'# auto.master\n'> <'# bootparams\n'> <'# timezone.byname\n'> <'# printers.conf.byname\n'> <'# passwd.adjunct.byname\n'> <'# group.adjunct.byname\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<CUST_CMT_NEEDED>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'# If any custom map needs to be aliased, then it should be listed\n'> <'# here in the following format :\n'> <'# nisLDAPdatabaseIdMapping databaseId '> ) <Id.Lit_Colon ':'> (DQ <' ['>) <Id.Lit_LBracket '['> (DQ <indexlist>) <Id.Lit_RBracket ']'> (DQ <'] mapname['>) } {(DQ <'...]\n'>)} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<CUST_MAP_NEEDED>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [ {<echo>} { (DQ <'# Not aliasing non-default/custom maps as they are assumed to be\n'> <'# simple, single maps.'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) (command.ForEach iter_names: [MAP] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_AUTO_CUST_MAPS> var_name: ALL_DMN_AUTO_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_CUST_MAPS> var_name: ALL_DMN_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (command.Simple words: [{<echo>} {(DQ <'# '> ($ Id.VSub_DollarName MAP))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'#\n'> < '#------------------------------------------------------------------------------\n' > <'#\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: find_domains body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [10464] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_ARRAY='> name:_ARRAY) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [10467] ) ] redirects: [] ) (C {<let>} {<Id.Lit_VarLike 'PRESENT_COUNT='> <0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PRESENT_IN_DOMAINS='> name: PRESENT_IN_DOMAINS ) op: assign_op.Equal rhs: {(DQ )} spids: [10476] ) ] redirects: [] ) (C {<let>} {<Id.Lit_VarLike 'count='> <0>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName count)} right: {($ Id.VSub_DollarName N2L_DMN_CNT)} ) redirects: [] ) ] ) body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName _ARRAY))} arms: [ (case_arm pat_list: [{<ALL_MAPS>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_LIST='> name:_LIST) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_MAPS> var_name: ALL_MAPS bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName count)} ) right: <Id.Right_DollarBrace '}'> ) } spids: [10521] ) ] redirects: [] ) ] spids: [10517 10519 10529 -1] ) (case_arm pat_list: [{<DEF_MAPS>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_LIST='> name:_LIST) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DEF_MAPS> var_name: DEF_MAPS bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName count)} ) right: <Id.Right_DollarBrace '}'> ) } spids: [10536] ) ] redirects: [] ) ] spids: [10532 10534 10544 -1] ) (case_arm pat_list: [{<CUST_MAPS>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_LIST='> name:_LIST) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CUST_MAPS> var_name: CUST_MAPS bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName count)} ) right: <Id.Right_DollarBrace '}'> ) } spids: [10551] ) ] redirects: [] ) ] spids: [10547 10549 10559 -1] ) (case_arm pat_list: [{<AUTO_CUST_MAPS>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_LIST='> name:_LIST) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name AUTO_CUST_MAPS> var_name: AUTO_CUST_MAPS bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName count)} ) right: <Id.Right_DollarBrace '}'> ) } spids: [10566] ) ] redirects: [] ) ] spids: [10562 10564 10574 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} { (DQ <'Invalid value: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name _ARRAY) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'. '> <Id.Lit_BadBackslash '\\'> <c> ) } ) ] spids: [10577 10579 10596 -1] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName _LIST)} ) ] ) action: [ (C {<let>} {<Id.Lit_VarLike 'PRESENT_COUNT='> (DQ ($ Id.VSub_DollarName PRESENT_COUNT) <' + 1'>) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PRESENT_IN_DOMAINS='> name: PRESENT_IN_DOMAINS ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName PRESENT_IN_DOMAINS) <' '> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name N2L_DMN_LIST> var_name: N2L_DMN_LIST bracket_op: (bracket_op.ArrayIndex expr: ($ Id.Lit_ArithVarLike count) ) right: <Id.Right_DollarBrace '}'> ) ) } spids: [10624] ) ] redirects: [] ) ] spids: [10603 10612] ) ] else_action: [] redirects: [] ) (C {<let>} {<Id.Lit_VarLike 'count='> (DQ <'count + 1'>)}) ] ) redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {(DQ <'PRESENT_COUNT = '> ($ Id.VSub_DollarName PRESENT_COUNT))}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {(DQ <'PRESENT_IN_DOMAINS = '> ($ Id.VSub_DollarName PRESENT_IN_DOMAINS))}) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: find_map_presence_details body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [10721] ) ] redirects: [] ) (C {<let>} {<Id.Lit_VarLike 'PRESENT_COUNT='> <0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PRESENT_IN_LIST='> name: PRESENT_IN_LIST ) op: assign_op.Equal rhs: {(DQ )} spids: [10730] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PRESENT_IN_DOMAINS='> name: PRESENT_IN_DOMAINS ) op: assign_op.Equal rhs: {(DQ )} spids: [10734] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_ALL_MAPLIST)} ) ] negated: T stderr_indices: [] ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})] spids: [10752 10762] ) (if_arm cond: (condition.Shell commands: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PRESENT_IN_LIST='> name: PRESENT_IN_LIST ) op: assign_op.Equal rhs: {(DQ <DEF_MAPS>)} spids: [10781] ) ] redirects: [] ) ] spids: [10770 10778] ) (if_arm cond: (condition.Shell commands: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_CUST_MAPLIST)} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PRESENT_IN_LIST='> name: PRESENT_IN_LIST ) op: assign_op.Equal rhs: {(DQ <CUST_MAPS>)} spids: [10798] ) ] redirects: [] ) ] spids: [10787 10795] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PRESENT_IN_LIST='> name: PRESENT_IN_LIST ) op: assign_op.Equal rhs: {(DQ <AUTO_CUST_MAPS>)} spids: [10815] ) ] redirects: [] ) ] redirects: [] ) (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName PRESENT_IN_LIST)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {(DQ <'PRESENT_IN_LIST = '> ($ Id.VSub_DollarName PRESENT_IN_LIST))}) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: valid_comment_char body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'COMMENT_CHAR_LENGTH='> name: COMMENT_CHAR_LENGTH ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {(DQ (${ Id.VSub_Name COMMENT_CHAR))}) (C {<wc>} {<-c>}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [10890] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName COMMENT_CHAR_LENGTH)} {<-gt>} {<2>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <' Comment character has to be a blank or single character; try again.'>)} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [10913 10926] ) ] else_action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_comment_char body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [10971] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans>} {(DQ <'Specify the comment character for '> ($ Id.VSub_DollarName _MAP) <' :'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'COMMENT_CHAR='> name: COMMENT_CHAR ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ANS)} spids: [10991] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<valid_comment_char>}) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [10996 11001] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'nisLDAPcommentChar '> ($ Id.VSub_DollarName _MAP) <' : \''> (${ Id.VSub_Name COMMENT_CHAR) <'\''> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_comment_char_per_domain body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [11053] ) ] redirects: [] ) (C {<shift>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_DOMAIN_LIST='> name:_DOMAIN_LIST) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_At '@'))} spids: [11058] ) ] redirects: [] ) (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName _DOMAIN_LIST)}]) body: (command.DoGroup children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans>} { (DQ <'Specify the comment character for '> ($ Id.VSub_DollarName _MAP) <','> (${ Id.VSub_Name _DMN) <' :'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'COMMENT_CHAR='> name: COMMENT_CHAR ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ANS)} spids: [11098] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<valid_comment_char>}) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [11103 11108] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'nisLDAPcommentChar '> ($ Id.VSub_DollarName _MAP) <','> (${ Id.VSub_Name _DMN) <' : \''> (${ Id.VSub_Name COMMENT_CHAR) <'\''> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_custom_nisLDAPcommentChar body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ForEach iter_names: [MAP] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_AUTO_CUST_MAPS> var_name: ALL_DMN_AUTO_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} {(DQ <'nisLDAPcommentChar '> ($ Id.VSub_DollarName MAP) <' : \'#\''>)} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<CUST_MAP_NEEDED>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<get_confirm>} { (DQ < 'Do you wish to specify the comment character for any custom map (y/n/h)?' > ) } {(DQ <n>)} {(DQ <custom_map_comment_char_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [MAP] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_CUST_MAPS> var_name: ALL_DMN_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (C {<get_confirm>} { (DQ <'Do you wish to specify comment character for '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName MAP) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' (y/n/h)?'> ) } {(DQ <n>)} {(DQ <custom_map_comment_char_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<find_domains>} {($ Id.VSub_DollarName MAP)} {<CUST_MAPS>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-gt>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <'Map '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName MAP) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' is present in these domains : '> ($ Id.VSub_DollarName PRESENT_IN_DOMAINS) ) } ) (C {<get_confirm>} { (DQ <'For '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName MAP) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') < ', should the same comment character be set for all the domains (y/n/h)?' > ) } {(DQ <y>)} {(DQ <same_comment_char_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<get_comment_char>} {($ Id.VSub_DollarName MAP)} ) ] spids: [11372 11385] ) ] else_action: [ (C {<get_comment_char_per_domain>} {($ Id.VSub_DollarName MAP)} {(DQ ($ Id.VSub_DollarName PRESENT_IN_DOMAINS))} ) ] redirects: [] ) ] spids: [11321 11334] ) ] else_action: [ (C {<get_comment_char>} {($ Id.VSub_DollarName MAP)}) ] redirects: [] ) ] spids: [11298 11311] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] spids: [11242 11255] ) ] else_action: [] redirects: [] ) ] spids: [11208 11221] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_nisLDAPcommentChar body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<echo>} {(DQ <'# Specify the character representing the start of comments.\n'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<CUST_CMT_NEEDED>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [ {<echo>} { (DQ < '# The comment character represents the start of the special \'comment\'\n' > <'# field in a given NIS map. If this attribute is not present then the\n'> < '# default comment character \'#\' is used. If a map cannot contain comments\n' > <'# then the NULL (\'\') comment character should be specified. The format to\n'> <'# specify the comment character is :\n'> <'# nisLDAPcommentChar MAP[,DOMAIN] : \'single_comment_char\'\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) (command.Simple words: [ {<echo>} { (DQ <'nisLDAPcommentChar group : \'\'\n'> <'nisLDAPcommentChar passwd : \'\'\n'> <'nisLDAPcommentChar ageing.byname : \'\'\n'> <'nisLDAPcommentChar audit_user : \'\'\n'> <'nisLDAPcommentChar auth_attr : \'\'\n'> <'nisLDAPcommentChar exec_attr : \'\'\n'> <'nisLDAPcommentChar user_attr : \'\'\n'> <'nisLDAPcommentChar bootparams : \'\'\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {<passwd.adjunct.byname>} spids: [11509] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] negated: T stderr_indices: [] ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'#nisLDAPcommentChar passwd.adjunct.byname: \'\''>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [11512 11522] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPcommentChar passwd.adjunct.byname: \'\''>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [11553 11566] ) ] else_action: [ (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPcommentChar passwd.adjunct.byname,'> (${ Id.VSub_Name _DMN) <': \'\''> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {<group.adjunct.byname>} spids: [11633] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] negated: T stderr_indices: [] ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'#nisLDAPcommentChar group.adjunct.byname: \'\''>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [11636 11646] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPcommentChar group.adjunct.byname: \'\''>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [11677 11690] ) ] else_action: [ (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPcommentChar group.adjunct.byname,'> (${ Id.VSub_Name _DMN) <': \'\''> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.Simple words: [{<echo>} {(DQ )}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_custom_nisLDAPcommentChar>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'#\n'> < '#------------------------------------------------------------------------------\n' > <'#\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_secure_flag_entries body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<echo>} {(DQ <'# Specify YP_SECURE flags\n'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<CUST_CMT_NEEDED>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [ {<echo>} { (DQ <'# If a map is secure, then it needs to be mentioned here\n'> <'# in the following format :\n'> <'# nisLDAPmapFlags mapname : s\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {<passwd.adjunct.byname>} spids: [11841] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] negated: T stderr_indices: [] ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'#nisLDAPmapFlags passwd.adjunct.byname : s'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [11844 11854] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPmapFlags passwd.adjunct.byname : s'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [11885 11898] ) ] else_action: [ (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPmapFlags passwd.adjunct.byname,'> (${ Id.VSub_Name _DMN) <' : s'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {<group.adjunct.byname>} spids: [11961] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] negated: T stderr_indices: [] ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'#nisLDAPmapFlags group.adjunct.byname : s'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [11964 11974] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'nisLDAPmapFlags group.adjunct.byname : s'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [12005 12018] ) ] else_action: [ (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPmapFlags group.adjunct.byname,'> (${ Id.VSub_Name _DMN) <' : s'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.Simple words: [{<echo>} {(DQ )}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STR='> name:STR) op: assign_op.Equal rhs: {(DQ <any>)} spids: [12088] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_confirm>} { (DQ <'Do you wish to set the secure flag for '> ($ Id.VSub_DollarName STR) <' map (y/n/h)?'> ) } {(DQ <n>)} {(DQ <secure_flag_on_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [12123 12136] ) ] else_action: [ (C {<get_ans>} {(DQ <'Enter the MAP name :'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAP='> name:MAP) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ANS)} spids: [12155] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {($ Id.VSub_DollarName MAP)} right: {(DQ )} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <' Error : BLANK map name not allowed; try again'>)}) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] spids: [12161 12175] ) ] else_action: [] redirects: [] ) (C {<find_map_presence_details>} {($ Id.VSub_DollarName MAP)}) (command.Case to_match: {($ Id.VSub_DollarName PRESENT_COUNT)} arms: [ (case_arm pat_list: [{<0>}] action: [ (C {<echo>} { (DQ <' Error : '> ($ Id.VSub_DollarName MAP) <' not found in any domain; try again'> ) } ) ] spids: [12215 12217 12228 -1] ) (case_arm pat_list: [{<1>}] action: [ (command.Simple words: [ {<echo>} {(DQ <'nisLDAPmapFlags '> ($ Id.VSub_DollarName MAP) <' : s'>)} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STR='> name:STR) op: assign_op.Equal rhs: {(DQ <another>)} spids: [12253] ) ] redirects: [] ) ] spids: [12232 12234 12262 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} { (DQ <'Map '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName MAP) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' is present in these domains : '> ($ Id.VSub_DollarName PRESENT_IN_DOMAINS) ) } ) (C {<get_confirm>} { (DQ < 'For this map, do you wish to set this flag for all the domains (y/n/h)?' > ) } {(DQ <y>)} {(DQ <secure_flag_all_domains_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPmapFlags '> ($ Id.VSub_DollarName MAP) <' : s'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [12310 12323] ) ] else_action: [ (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words: [{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}] ) body: (command.DoGroup children: [ (C {<get_confirm_nodef>} { (DQ <'Set secure flag for '> ($ Id.VSub_DollarName MAP) <','> (${ Id.VSub_Name _DMN) <' (y/n)?'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPmapFlags '> ($ Id.VSub_DollarName MAP) <','> (${ Id.VSub_Name _DMN) <' : s'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [12370 12383] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STR='> name:STR) op: assign_op.Equal rhs: {(DQ <another>)} spids: [12413] ) ] redirects: [] ) ] spids: [12266 12268 12422 -1] ) ] redirects: [] ) ] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_interdomain_flag_entries body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'INTERDOMAIN_MAP_LIST='> name: INTERDOMAIN_MAP_LIST ) op: assign_op.Equal rhs: { (DQ <'ipnodes\n'> <' multiipnodes\n'> <' hosts\n'> <' multihosts\n'> <' services.byservicename'> ) } spids: [12454] ) ] redirects: [] ) (command.ShFunction name: print_interdomain_entries body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ForEach iter_names: [_MAP] iterable: (for_iter.Words words: [{($ Id.VSub_DollarName INTERDOMAIN_MAP_LIST)}] ) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} {(DQ <'nisLDAPmapFlags '> (${ Id.VSub_Name _MAP) <' : b'>)} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple words: [{<echo>} {(DQ <'\n'> <'# Specify YP_INTERDOMAIN flags\n'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<CUST_CMT_NEEDED>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [ {<echo>} { (DQ < '# It is used to indicate NIS servers to use the domain name resolver for\n' > <'# host name and address lookups for hosts not found in the maps.\n'> < '# If set, it adds YP_INTERDOMAIN entries in these maps when converting \n' > <'# data from LDAP to YP. It needs to be set in the following format :\n'> <'# nisLDAPmapFlags mapname : b\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) (command.Simple words: [ {<echo>} { (DQ <'# If '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'B is set in /var/yp/Makefile, then this flag should be\n'> <'# set for following maps :'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ForEach iter_names: [_MAP] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName INTERDOMAIN_MAP_LIST)}]) body: (command.DoGroup children: [ (command.Simple words: [{<echo>} {(DQ <'# nisLDAPmapFlags '> (${ Id.VSub_Name _MAP) <' : b'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) (command.Simple words: [{<echo>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (C {<get_confirm>} { (DQ <'Do you wish to set the '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <interdomain> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' flag for any domain (y/n/h)?'> ) } {(DQ <n>)} {(DQ <interdomain_flag_on_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<-gt>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<get_confirm>} { (DQ <'Should '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <interdomain> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' flag be set for all domain (y/n/h)?'> ) } {(DQ <y>)} {(DQ <interdomain_flag_all_domains_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<print_interdomain_entries>})] spids: [12688 12701] ) ] else_action: [ (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name N2L_DMN_LIST> var_name: N2L_DMN_LIST bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (C {<get_confirm_nodef>} { (DQ <'Set interdomain flag for '> (${ Id.VSub_Name _DMN) <' (y/n)?'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [_MAP] iterable: (for_iter.Words words: [ {($ Id.VSub_DollarName INTERDOMAIN_MAP_LIST)} ] ) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPmapFlags '> (${ Id.VSub_Name _MAP) <','> (${ Id.VSub_Name _DMN) <' : b'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] spids: [12740 12753] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] redirects: [] ) ] spids: [12649 12662] ) ] else_action: [(C {<print_interdomain_entries>})] redirects: [] ) ] spids: [12632 12645] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'#\n'> < '#------------------------------------------------------------------------------\n' > <'#\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_nisLDAPmapFlags body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [(C {<create_secure_flag_entries>}) (C {<create_interdomain_flag_entries>})] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: print_one_map_ttl_entry body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_Map='> name:_Map) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [12872] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_iTtlLo='> name:_iTtlLo) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [12875] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_iTtlHi='> name:_iTtlHi) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} spids: [12878] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_runTtl='> name:_runTtl) op: assign_op.Equal rhs: {($ Id.VSub_Number 4)} spids: [12881] ) ] redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'nisLDAPentryTtl '> (${ Id.VSub_Name _Map) <':'> (${ Id.VSub_Name _iTtlLo) <':'> (${ Id.VSub_Name _iTtlHi) <':'> (${ Id.VSub_Name _runTtl) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: print_all_same_ttl_entries body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_iTTLlo='> name:_iTTLlo) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [12939] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_iTTLhi='> name:_iTTLhi) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [12942] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_runTTL='> name:_runTTL) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} spids: [12945] ) ] redirects: [] ) (command.ForEach iter_names: [_MAP] iterable: (for_iter.Words words: [ {(${ Id.VSub_Name DEF_TTL_MAPLIST)} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_CUST_MAPS> var_name: ALL_DMN_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_AUTO_CUST_MAPS> var_name: ALL_DMN_AUTO_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName _MAP))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <passwd.adjunct.byname>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName _MAP))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <group.adjunct.byname>)} {<Id.Lit_RBracket ']'>} ) ] ) ] ) action: [ (C {<print_one_map_ttl_entry>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName _iTTLlo)} {($ Id.VSub_DollarName _iTTLhi)} {($ Id.VSub_DollarName _runTTL)} ) ] spids: [12979 13016] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<print_one_map_ttl_entry>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName _iTTLlo)} {($ Id.VSub_DollarName _iTTLhi)} {($ Id.VSub_DollarName _runTTL)} ) ] spids: [13047 13060] ) ] else_action: [ (command.ForEach iter_names: [_DMN_] iterable: (for_iter.Words words: [{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_STR='> name: _STR ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name _MAP) <','> (${ Id.VSub_Name _DMN_)) } spids: [13096] ) ] redirects: [] ) (C {<print_one_map_ttl_entry>} {($ Id.VSub_DollarName _STR)} {($ Id.VSub_DollarName _iTTLlo)} {($ Id.VSub_DollarName _iTTLhi)} {($ Id.VSub_DollarName _runTTL)} ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) ] ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_ittl_lo body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_pos_int>} {(DQ <'Lower limit for initial TTL (in seconds) (h=help):'>)} {(DQ ($ Id.VSub_DollarName DEF_iTTLlo))} {(DQ <initialTTLlo_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'iTTLlo='> name:iTTLlo) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [13170] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_ittl_hi body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_pos_int>} {(DQ <'Higher limit for initial TTL (in seconds) (h=help):'>)} {(DQ ($ Id.VSub_DollarName DEF_iTTLhi))} {(DQ <initialTTLhi_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'iTTLhi='> name:iTTLhi) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [13211] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_run_ttl body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_pos_int>} {(DQ <'Runtime TTL (in seconds) (h=help):'>)} {(DQ ($ Id.VSub_DollarName DEF_runTTL))} {(DQ <runningTTL_help>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'runTTL='> name:runTTL) op: assign_op.Equal rhs: {(${ Id.VSub_Name NUM)} spids: [13252] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: read_one_ttl_triplet body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<get_ittl_lo>}) (C {<get_ittl_hi>}) (C {<get_run_ttl>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<echo>} { (DQ <'TTL = '> (${ Id.VSub_Name iTTLlo) <':'> (${ Id.VSub_Name iTTLhi) <':'> (${ Id.VSub_Name runTTL) ) } ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: process_one_map_ttl_value body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_Map_='> name:_Map_) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} spids: [13348] ) ] redirects: [] ) (C {<get_confirm>} { (DQ <'Retain the default TTL values ['> ($ Id.VSub_DollarName DEF_iTTLlo) <':'> ($ Id.VSub_DollarName DEF_iTTLhi) <':'> ($ Id.VSub_DollarName DEF_runTTL) <'] for '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName _Map_) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' (y/n/h) ?'> ) } {(DQ <y>)} {(DQ <default_different_ttl_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print_one_map_ttl_entry>} {($ Id.VSub_DollarName _Map_)} {($ Id.VSub_DollarName DEF_iTTLlo)} {($ Id.VSub_DollarName DEF_iTTLhi)} {($ Id.VSub_DollarName DEF_runTTL)} ) ] spids: [13381 13394] ) ] else_action: [ (C {<echo>} {(DQ <'Reading TTL values for '> ($ Id.VSub_DollarName _Map_) <' :'>)}) (C {<read_one_ttl_triplet>}) (C {<print_one_map_ttl_entry>} {($ Id.VSub_DollarName _Map_)} {($ Id.VSub_DollarName iTTLlo)} {($ Id.VSub_DollarName iTTLhi)} {($ Id.VSub_DollarName runTTL)} ) ] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: read_all_maps_ttl_values_no_multiple_domain_issue body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ForEach iter_names: [_MAP] iterable: (for_iter.Words words: [ {(${ Id.VSub_Name DEF_TTL_MAPLIST)} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_CUST_MAPS> var_name: ALL_DMN_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_AUTO_CUST_MAPS> var_name: ALL_DMN_AUTO_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName _MAP))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <passwd.adjunct.byname>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName _MAP))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <group.adjunct.byname>)} {<Id.Lit_RBracket ']'>} ) ] ) ] ) action: [(C {<process_one_map_ttl_value>} {($ Id.VSub_DollarName _MAP)})] spids: [13497 13535] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [(C {<process_one_map_ttl_value>} {($ Id.VSub_DollarName _MAP)})] spids: [13560 13573] ) ] else_action: [ (command.ForEach iter_names: [_DMN_] iterable: (for_iter.Words words: [{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_STR='> name: _STR ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name _MAP) <','> (${ Id.VSub_Name _DMN_)) } spids: [13603] ) ] redirects: [] ) (C {<process_one_map_ttl_value>} {($ Id.VSub_DollarName _STR)}) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) ] ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: read_default_maps_ttl_values_with_multi_domain_issue body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ForEach iter_names: [_MAP_] iterable: (for_iter.Words words:[{(${ Id.VSub_Name DEF_TTL_MAPLIST)}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName _MAP_))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <passwd.adjunct.byname>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName _MAP_))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <group.adjunct.byname>)} {<Id.Lit_RBracket ']'>} ) ] ) ] ) action: [ (command.ForEach iter_names: [_DMN_] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name N2L_DMN_LIST> var_name: N2L_DMN_LIST bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_STR_='> name: _STR_ ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name _MAP_) <','> (${ Id.VSub_Name _DMN_)) } spids: [13730] ) ] redirects: [] ) (C {<process_one_map_ttl_value>} {(DQ ($ Id.VSub_DollarName _STR_))}) ] ) redirects: [] ) ] spids: [13672 13709] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP_)} {<DEF_MAPS>}) (command.ForEach iter_names: [_DMN_] iterable: (for_iter.Words words: [{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_STR_='> name: _STR_ ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name _MAP_) <','> (${ Id.VSub_Name _DMN_))} spids: [13783] ) ] redirects: [] ) (C {<process_one_map_ttl_value>} {(DQ ($ Id.VSub_DollarName _STR_))}) ] ) redirects: [] ) ] redirects: [] ) ] ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: read_custom_maps_ttl_values_with_multi_domain_issue body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ForEach iter_names: [_MAP_] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_CUST_MAPS> var_name: ALL_DMN_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_AUTO_CUST_MAPS> var_name: ALL_DMN_AUTO_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (C {<find_map_presence_details>} {($ Id.VSub_DollarName _MAP_)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<process_one_map_ttl_value>} {($ Id.VSub_DollarName _MAP_)})] spids: [13867 13880] ) ] else_action: [ (C {<echo>} { (DQ <'Map '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name _MAP_) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' is present in these domains : '> ($ Id.VSub_DollarName PRESENT_IN_DOMAINS) ) } ) (C {<get_confirm>} { (DQ < 'For this map, do you wish to use the same TTL values for all the domains (y/n/h) ?' > ) } {(DQ <y>)} {(DQ <same_ttl_across_domains_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<process_one_map_ttl_value>} {($ Id.VSub_DollarName _MAP_)})] spids: [13941 13954] ) ] else_action: [ (command.ForEach iter_names: [_DMN_] iterable: (for_iter.Words words: [{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_STR='> name: _STR ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name _MAP_) <','> (${ Id.VSub_Name _DMN_)) } spids: [13989] ) ] redirects: [] ) (C {<process_one_map_ttl_value>} {(DQ ($ Id.VSub_DollarName _STR))}) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) ] ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_nisLDAPentryTtl body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<echo>} {(DQ <'# Associate TTLs with NIS entries derived from LDAP\n'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<CUST_CMT_NEEDED>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [ {<echo>} { (DQ <'# Each map has three TTL values which are specified in seconds.\n'> <'# 1. initialTTLlo (default '> ($ Id.VSub_DollarName DEF_iTTLlo) <' sec) The lower limit for the initial\n'> <'# TTL (in seconds) for data read from disk when the ypserv starts.\n'> <'#\n'> <'# 2. initialTTLhi (default '> ($ Id.VSub_DollarName DEF_iTTLhi) <' sec) The upper limit for initial TTL.\n'> <'#\n'> <'# 3. runningTTL (default '> ($ Id.VSub_DollarName DEF_runTTL) <' sec) The TTL (in seconds) for data \n'> <'# retrieved from LDAP while the ypserv is running.\n'> <'#\n'> <'# If any value is not specified, then default value is used.\n'> <'# The format of TTL entry is :\n'> <'# nisLDAPentryTtl MAP[,DOMAIN]:initialTTLlo:initialTTLhi:runningTTL\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_ALL_MAPS> var_name: ALL_DMN_ALL_MAPS prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (C {<echo>} { (DQ <'The default TTL for each map is set to '> (${ Id.VSub_Name DEF_iTTLlo) <':'> (${ Id.VSub_Name DEF_iTTLhi) <':'> (${ Id.VSub_Name DEF_runTTL) ) } ) (C {<get_confirm>} {(DQ <'Do you wish to change the TTL values for any map (y/n/h) ?'>)} {(DQ <n>)} {(DQ <default_ttl_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print_all_same_ttl_entries>} {($ Id.VSub_DollarName DEF_iTTLlo)} {($ Id.VSub_DollarName DEF_iTTLhi)} {($ Id.VSub_DollarName DEF_runTTL)} ) ] spids: [14162 14175] ) ] else_action: [ (C {<echo>} {(DQ <'You would be allowed to enter the new TTL values.'>)}) (C {<get_confirm>} {(DQ <'Do you wish to use the same TTL values for all the maps (y/n/h) ?'>)} {(DQ <y>)} {(DQ <non_default_same_ttl_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Enter the new TTL values :'>)}) (C {<read_one_ttl_triplet>}) (C {<print_all_same_ttl_entries>} {($ Id.VSub_DollarName iTTLlo)} {($ Id.VSub_DollarName iTTLhi)} {($ Id.VSub_DollarName runTTL)} ) ] spids: [14224 14237] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<read_all_maps_ttl_values_no_multiple_domain_issue>})] spids: [14279 14292] ) ] else_action: [ (C {<echo>} {(DQ <'You would be allowed to enter different TTL values for each map.'>)} ) (C {<get_confirm>} { (DQ < 'For a given map, do you wish to use the same TTL values for all the domains (y/n/h) ?' > ) } {(DQ <y>)} {(DQ <non_default_different_ttl_help>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<read_all_maps_ttl_values_no_multiple_domain_issue>})] spids: [14356 14369] ) ] else_action: [ (C {<read_default_maps_ttl_values_with_multi_domain_issue>}) (C {<read_custom_maps_ttl_values_with_multi_domain_issue>}) ] redirects: [] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'#\n'> < '#------------------------------------------------------------------------------\n' > <'#\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: ask_user_to_update_the_custom_map_entries_too body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_CUST_MAPS> var_name: ALL_DMN_CUST_MAPS prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'\n'> <'# Similar entries need to be created\n'> <'# for following custom maps too :'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ForEach iter_names: [_MAP] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_CUST_MAPS> var_name: ALL_DMN_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (command.Simple words: [{<echo>} {(DQ <'# '> ($ Id.VSub_DollarName _MAP))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] spids: [14458 14477] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: put_default_nisLDAPnameFields body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {<echo>} { (SQ <'\n'> <'# Associate names with fields in the maps. Must be same for all domains.\n'> <'nisLDAPnameFields audit_user: \\\n'> <'\t\t\t("%s:%s:%s", name, alwaysAuditFlags, neverAuditFlags)\n'> <'\n'> <'nisLDAPnameFields auto.home: \\\n'> <'\t\t\t("%s",value)\n'> <'\n'> <'nisLDAPnameFields auto.master: \\\n'> <'\t\t\t("%s",value)\n'> <'\n'> <'nisLDAPnameFields auth_attr: \\\n'> <'\t\t\t("%s:%s:%s:%s:%s:%s", \\\n'> <'\t\t\tname, res1, res2, short_desc, long_desc, attrs )\n'> <'\n'> <'nisLDAPnameFields bootparams: \\\n'> <'\t\t\t("%s", params)\n'> <'\n'> <'nisLDAPnameFields ethers: \\\n'> <'\t\t\t("%s %s", addr, name)\n'> <'\n'> <'nisLDAPnameFields exec_attr: \\\n'> <'\t\t\t("%s:%s:%s:%s:%s:%s:%s", \\\n'> <'\t\t\tname, policy, type, res1, res2, id, attrs)\n'> <'\n'> <'nisLDAPnameFields group: \\\n'> <'\t\t\t("%s:%s:%s:%s", name, passwd, gid, users)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {<group.adjunct.byname>} spids: [14580] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] negated: T stderr_indices: [] ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'#nisLDAPnameFields group.adjunct.byname: \\\n'> <'#\t\t\t("%s:%s", name, passwd)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [14583 14593] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'nisLDAPnameFields group.adjunct.byname: \\\n'> <'\t\t\t("%s:%s", name, passwd)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [14625 14638] ) ] else_action: [ (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPnameFields group.adjunct.byname,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\t('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'%s:%s'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <', name, passwd)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.Simple words: [ {<echo>} { (SQ <'nisLDAPnameFields keys.host: \\\n'> <'\t\t\t("%s:%s", publicKey ,secretKey)\n'> <'\n'> <'nisLDAPnameFields keys.pass: \\\n'> <'\t\t\t("%s:%s", publicKey ,secretKey)\n'> <'\n'> <'nisLDAPnameFields keys.nobody: \\\n'> <'\t\t\t("%s:%s", publicKey ,secretKey)\n'> <'\n'> <'nisLDAPnameFields hosts: \\\n'> <'\t\t\t("%a %s %s", addr, canonicalName, aliases)\n'> <'\n'> <'nisLDAPnameFields multihosts: \\\n'> <'\t\t\t("%a %s %s", addr, canonicalName, aliases)\n'> <'\n'> <'nisLDAPnameFields ipnodes: \\\n'> <'\t\t\t("%a %s %s", addr, canonicalName, aliases)\n'> <'\n'> <'nisLDAPnameFields multiipnodes: \\\n'> <'\t\t\t("%a %s %s", addr, canonicalName, aliases)\n'> <'\n'> <'nisLDAPnameFields mail.aliases: \\\n'> <'\t\t\t("%s", addresses)\n'> <'\n'> <'nisLDAPnameFields mail.mapping: \\\n'> <'\t\t\t("%s", address)\n'> <'\n'> <'# memberTriples\tis split into sub-fields by a latter nisLDAPsplitField\n'> <'# attribute.\n'> <'nisLDAPnameFields netgroup: \\\n'> <'\t\t\t("%s", memberTriples)\n'> <'\n'> <'nisLDAPnameFields netid.host: \\\n'> <'\t\t\t("%s:%s", number, data)\n'> <'\n'> <'nisLDAPnameFields netid.pass: \\\n'> <'\t\t\t("%s:%s", number, data)\n'> <'\n'> <'nisLDAPnameFields netmasks.byaddr: \\\n'> <'\t\t\t("%a", mask)\n'> <'\n'> <'nisLDAPnameFields networks: \\\n'> <'\t\t\t("%s %s %s", name, number, aliases)\n'> <'\n'> <'nisLDAPnameFields project: \\\n'> <'\t\t\t("%s:%s:%s:%s:%s:%s", \\\n'> <'\t\t\tname, projID, comment, users, groups, attrs)\n'> <'\n'> <'nisLDAPnameFields protocols:\t\\\n'> <'\t\t\t("%s %s %s", name, number, aliases)\n'> <'\n'> <'nisLDAPnameFields rpc.bynumber:\t\\\n'> <'\t\t\t("%s %s %s", name, number, aliases)\n'> <'\n'> <'nisLDAPnameFields passwd: \\\n'> <'\t\t\t("%s:%s:%s:%s:%s:%s:%s", \\\n'> <'\t\t\tname, passwd, uid, gid, gecos, home, shell)\n'> <'\n'> < '# It is not obvious what the fields in passwd.adjunct are for. They are not\n' > <'# the same as the shadow map. The following is based on information in:-\n'> <'#\n'> <'#\tlib/libbc/inc/include/pwdadj.h.\n'> <'#\n'> <'# This file implies that these are documented in getpwaent(3) but this man page\n'> <'# does not seem to exist.\n'> <'#\t\t\t\n'> <'# It is believed that '> ) <min> (SQ <','>) <max> (SQ <' and '>) <def> (SQ <' labels were reserved fields in \n'> <'# SunOS 4.x and are now unused. '>) <always> (SQ <' and '>) <never> (SQ <' audit information is \n'> <'# now contained in audit_user(4) so is now unused.\n'> <'#\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {<passwd.adjunct.byname>} spids: [14811] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] negated: T stderr_indices: [] ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'#nisLDAPnameFields passwd.adjunct.byname: \\\n'> <'#\t\t\t("%s:%s:%s:%s:%s:%s:%s", \\\n'> <'#\t\t\tname, passwd, min, max, def, always, \\\n'> <'#\t\t\tnever)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [14814 14824] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'nisLDAPnameFields passwd.adjunct.byname: \\\n'> <'\t\t\t("%s:%s:%s:%s:%s:%s:%s", \\\n'> <'\t\t\tname, passwd, min, max, def, always, \\\n'> <'\t\t\tnever)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [14859 14872] ) ] else_action: [ (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPnameFields passwd.adjunct.byname,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\t('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'%s:%s:%s:%s:%s:%s:%s'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <', '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <' name, passwd, min, max, def, always, '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <' never)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.Simple words: [ {<echo>} { (SQ <'\n'> <'nisLDAPnameFields printers.conf.byname: \\\n'> <'\t\t\t("%s:%s", names, values)\n'> <'\n'> <'nisLDAPnameFields prof_attr: \\\n'> <'\t\t\t("%s:%s:%s:%s:%s", \\\n'> <'\t\t\tname, res1, res2, desc, attrs)\n'> <'\n'> <'nisLDAPnameFields services: \\\n'> <'\t\t\t("%s %s/%s %s", name, port, protocol, aliases)\n'> <'\n'> <'# This map is never created but yppasswd uses the mapping to extract password\n'> < '# ageing information from the DIT. The password itself is not required by this\n' > <'# mechanism so is not included in the ageing mapping.\n'> <'nisLDAPnameFields ageing.byname: \\\n'> <'\t\t\t("%s:%s:%s:%s:%s:%s:%s:%s", \\\n'> <'\t\t\tname, lastchg, min, max, warn, inactive, \\\n'> <'\t\t\texpire, flag)\n'> <'\n'> <'nisLDAPnameFields timezone.byname: \\\n'> <'\t\t\t("%s %s", zoneName, hostName)\n'> <'\n'> <'nisLDAPnameFields user_attr: \\\n'> <'\t\t\t("%s:%s:%s:%s:%s", user, qualifier, res1, res2, attrs)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: put_auto_and_custom_map_nisLDAPnameFields body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ForEach iter_names: [_MAP] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_AUTO_CUST_MAPS> var_name: ALL_DMN_AUTO_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_CUST_MAPS> var_name: ALL_DMN_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPnameFields '> (${ Id.VSub_Name _MAP) <': '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <' ('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'%s'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <',value)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_nisLDAPnameFields body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<CUST_CMT_NEEDED>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [ {<echo>} { (SQ <'\n'> <'# "nisLDAPnameFields" specifies the content of entries in a NIS map\n'> <'# and how they should be broken into named fields. It is required as,\n'> <'# unlike NIS+, NIS maps do not store information in named fields.\n'> <'#\n'> <'# Following is the syntax for nisLDAPnameFields :\n'> <'#\n'> <'# "nisLDAPnameFields" mapName ":" "(" matchspec "," fieldNames ")"\n'> <'# fieldName = nameOrArrayName[","...]\n'> <'# nameOrArrayName = Name of field or '> ) <array> (SQ <' of repeated fields.\n'> <'# matchspec = \\" formatString \\"\n'>) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) (C {<put_default_nisLDAPnameFields>}) (command.Simple words: [ {<echo>} { (DQ <'# With the assumption that all the custom maps are simple, single\n'> <'# map (single key-value pair type), below is the nisLDAPnameFields\n'> <'# information for all the custom and non-default auto.* maps. If\n'> <'# this assumption is not valid, then refer to the NISLDAPmapping\n'> <'# man page for information on how to customize this section.\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (C {<put_auto_and_custom_map_nisLDAPnameFields>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'#\n'> < '#------------------------------------------------------------------------------\n' > <'#\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_nisLDAPrepeatedFieldSeparators body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<CUST_CMT_NEEDED>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'# nisLDAPrepeatedFieldSeparators : It is a character which separates\n'> <'# the repeatable instnaces of splitable fields. It\'s format is :\n'> <'#\n'> <'# nisLDAPrepeatedFieldSeparators fieldName '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'sepChar[...]'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'\n'> <'# sepChar = A separator character.\n'> <'# Default value is space or tab.\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) (command.Simple words: [ {<echo>} { (DQ <'#nisLDAPrepeatedFieldSeparators memberTriples: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <' '> <Id.Lit_BadBackslash '\\'> <t> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_nisLDAPsplitField body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<CUST_CMT_NEEDED>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [ {<echo>} { (SQ <'\n'> <'# nisLDAPsplitFields : It defines how a field, or list of fields,\n'> <'# named by nisLDAPnameFields is split into sub fields. The original\n'> < '# field is compared with each line of this attribute until one matches.\n' > <'# When a match is found named sub-fields are generated. In latter\n'> <'# operations sub-field names can be used in the same way as other\n'> <'# field names. The format of nisLDAPsplitFields is :\n'> <'#\n'> <'# "nisLDAPsplitFields" fieldName ":" splitSpec[","...]\n'> <'# splitSpec = "(" matchspec "," subFieldNames ")"\n'> <'# fieldName = Name of a field from nisLDAPnameFields\n'> <'# subFieldNames = subFieldname[","...]\n'> <'# matchspec = \\" formatString \\" \n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) (command.Simple words: [ {<echo>} { (SQ <'\n'> <'nisLDAPsplitField memberTriples: \\\n'> <'\t\t\t("(%s,%s,%s)", host, user, domain), \\\n'> <'\t\t\t("%s", group)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_split_field_and_repeatedfield_seperators body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<echo>} {(DQ <'# Specify how to break fields up into sub fields.\n'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (C {<create_nisLDAPrepeatedFieldSeparators>}) (C {<create_nisLDAPsplitField>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'#\n'> < '#------------------------------------------------------------------------------\n' > <'#\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: list_default_nisLDAPobjectDN body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {<echo>} { (SQ <'\n'> <'# Associate maps with RDNs and object classes. Base DN comes from the \n'> <'# nisLDAPdomainContext.\n'> <'#\n'> < '# As supplied this file gives only the most derived objectClass for each map.\n' > <'# For some servers it may be necessary to add "objectClass=" statements for \n'> <'# all the superclasses. This should be done here.\n'> <'\n'> <'nisLDAPobjectDN\tauto.home: \\\n'> <'\t\t\tautomountmapname=auto_home,?one? \\\n'> <'\t\t\tobjectClass=automount:\n'> <'\n'> <'nisLDAPobjectDN\tauto.master: \\\n'> <'\t\t\tautomountmapname=auto_master,?one? \\\n'> <'\t\t\tobjectClass=automount:\n'> <'\n'> <'nisLDAPobjectDN\tauth_attr: \\\n'> <'\t\t\tou=SolarisAuthAttr,?one? \\\n'> <'\t\t\tobjectClass=SolarisAuthAttr:\n'> <'\n'> <'nisLDAPobjectDN\tbootparams: \\\n'> <'\t\t\tou=ethers,?one? \\\n'> <'\t\t\tobjectClass=bootableDevice, \\\n'> <'\t\t\tbootParameter=*:\\\n'> <'\t\t\tou=ethers,?one? \\\n'> <'\t\t\tobjectClass=device, \\\n'> <'\t\t\tobjectClass=bootableDevice \n'> <'\n'> <'\n'> <'nisLDAPobjectDN exec_attr:\\\n'> <'\t\t\tou=SolarisProfAttr,?one?objectClass=SolarisExecAttr,\\\n'> <'\t\t\t\tSolarisKernelSecurityPolicy=*:\\\n'> <'\t\t\tou=SolarisProfAttr,?one?objectClass=SolarisExecAttr,\\\n'> <'\t\t\t\tobjectClass=SolarisProfAttr,\\\n'> <'\t\t\t\tobjectClass=top\n'> <'\n'> <'nisLDAPobjectDN\tethers: \\\n'> <'\t\t\tou=ethers,?one? \\\n'> <'\t\t\tobjectClass=ieee802Device, \\\n'> <'\t\t\tmacAddress=*:\\\n'> <'\t\t\tou=ethers,?one? \\\n'> <'\t\t\tobjectClass=device, \\\n'> <'\t\t\tobjectClass=ieee802Device\n'> <'\n'> <'nisLDAPobjectDN\tgroup: \\\n'> <'\t\t\tou=group,?one? \\\n'> <'\t\t\tobjectClass=posixGroup:\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {<group.adjunct.byname>} spids: [15413] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] negated: T stderr_indices: [] ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'#nisLDAPobjectDN group.adjunct.byname: \\\n'> <'#\t\t\tou=group,?one? \\\n'> <'#\t\t\tobjectClass=posixGroup:\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [15416 15426] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'nisLDAPobjectDN group.adjunct.byname: \\\n'> <'\t\t\tou=group,?one? \\\n'> <'\t\t\tobjectClass=posixGroup:\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [15459 15472] ) ] else_action: [ (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPobjectDN group.adjunct.byname,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tou=group,?one? '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tobjectClass=posixGroup:\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.Simple words: [ {<echo>} { (SQ <'nisLDAPobjectDN\thosts: \\\n'> <'\t\t\tou=hosts,?one? \\\n'> <'\t\t\tobjectClass=ipHost:\\\n'> <'\t\t\tou=hosts,?one? \\\n'> <'\t\t\tobjectClass=device, \\\n'> <'\t\t\tobjectClass=ipHost\n'> <'\n'> <'nisLDAPobjectDN multihosts: \\\n'> <'\t\t\tou=hosts,?one? \\\n'> <'\t\t\tobjectClass=ipHost, \\\n'> <'\t\t\tipHostNumber=*.*\n'> <'\n'> <'nisLDAPobjectDN\tipnodes: \\\n'> <'\t\t\tou=hosts,?one? \\\n'> <'\t\t\tobjectClass=ipHost:\\\n'> <'\t\t\tou=hosts,?one? \\\n'> <'\t\t\tobjectClass=device, \\\n'> <'\t\t\tobjectClass=ipHost\n'> <'\n'> <'nisLDAPobjectDN multiipnodes: \\\n'> <'\t\t\tou=hosts,?one? \\\n'> <'\t\t\tobjectClass=ipHost, \\\n'> <'\t\t\tipHostNumber=*\\:*\n'> <'\n'> <'nisLDAPobjectDN\tmail.aliases: \\\n'> <'\t\t\tou=aliases,?one? \\\n'> <'\t\t\tobjectClass=mailGroup:\n'> <'\n'> <'nisLDAPobjectDN\tmail.mapping: \\\n'> <'\t\t\tou=aliases,?one? \\\n'> <'\t\t\tobjectClass=mailGroup\n'> <'\n'> <'nisLDAPobjectDN\tnetgroup: \\\n'> <'\t\t\tou=netgroup,?one? \\\n'> <'\t\t\tobjectClass=nisNetgroup:\n'> <'\n'> <'nisLDAPobjectDN\tnetworks: \\\n'> <'\t\t\tou=networks,?one? \\\n'> <'\t\t\tobjectClass=ipNetwork, \\\n'> <'\t\t\tcn=*:\n'> <'\n'> <'# Must come after networks (or equivalent) that creates ipNetworks\n'> <'nisLDAPobjectDN netmasks.byaddr: \\\n'> <'\t\t\tou=networks,?one? \\\n'> <'\t\t\tobjectClass=ipNetwork, \\\n'> <'\t\t\tipNetMaskNumber=*:\n'> <'\n'> <'nisLDAPobjectDN\tpasswd: \\\n'> <'\t\t\tou=people,?one? \\\n'> <'\t\t\tobjectClass=posixAccount:\\\n'> <'\t\t\tou=people,?one? \\\n'> <'\t\t\tobjectClass=account, \\\n'> <'\t\t\tobjectClass=shadowAccount, \\\n'> <'\t\t\tobjectClass=posixAccount\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {<passwd.adjunct.byname>} spids: [15610] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] negated: T stderr_indices: [] ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'#nisLDAPobjectDN passwd.adjunct.byname: \\\n'> <'#\t\t\tou=people,?one? \\\n'> <'#\t\t\tobjectClass=posixAccount:\\\n'> <'#\t\t\tou=people,?one? \\\n'> <'#\t\t\tobjectClass=account, \\\n'> <'#\t\t\tobjectClass=shadowAccount, \\\n'> <'#\t\t\tobjectClass=posixAccount\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [15613 15623] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'nisLDAPobjectDN passwd.adjunct.byname: \\\n'> <'\t\t\tou=people,?one? \\\n'> <'\t\t\tobjectClass=posixAccount:\\\n'> <'\t\t\tou=people,?one? \\\n'> <'\t\t\tobjectClass=account, \\\n'> <'\t\t\tobjectClass=shadowAccount, \\\n'> <'\t\t\tobjectClass=posixAccount\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [15660 15673] ) ] else_action: [ (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPobjectDN passwd.adjunct.byname,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tou=people,?one? '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tobjectClass=posixAccount:'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tou=people,?one? '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tobjectClass=account, '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tobjectClass=shadowAccount, '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tobjectClass=posixAccount\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.Simple words: [ {<echo>} { (SQ <'# Must follow passwd\n'> <'nisLDAPobjectDN netid.pass: \\\n'> <'\t\t\tou=people,?one? \\\n'> <'\t\t\tobjectClass=posixAccount\n'> <'\n'> <'# Must follow hosts\n'> <'nisLDAPobjectDN netid.host: \\\n'> <'\t\t\tou=hosts,?one? \\\n'> <'\t\t\tobjectClass=ipHost\n'> <'\n'> <'nisLDAPobjectDN\tprinters.conf.byname: \\\n'> <'\t\t\tou=printers,?one? \\\n'> <'\t\t\t\tobjectClass=printerService:\\\n'> <'\t\t\tou=printers,?one? \\\n'> <'\t\t\t\tobjectClass=sunPrinter, \\\n'> <'\t\t\t\tobjectClass=printerService, \\\n'> <'\t\t\t\tobjectClass=printerLPR, \\\n'> <'\t\t\t\tobjectClass=printerAbstract\n'> <'\n'> <'nisLDAPobjectDN prof_attr:\\\n'> <'\t\t\tou=SolarisProfAttr,?one?objectClass=SolarisProfAttr,\\\n'> <'\t\t\t\tSolarisAttrLongDesc=*:\\\n'> <'\t\t\tou=SolarisProfAttr,?one?objectClass=SolarisProfAttr,\\\n'> <'\t\t\t\tobjectClass=SolarisExecAttr,\\\n'> <'\t\t\t\tobjectClass=top\n'> <'nisLDAPobjectDN project: \\\n'> <'\t\t\tou=project,?one? \\\n'> <'\t\t\tobjectClass=SolarisProject:\n'> <'\n'> <'nisLDAPobjectDN\tprotocols: \\\n'> <'\t\t\tou=protocols,?one? \\\n'> <'\t\t\tobjectClass=ipProtocol:\n'> <'\n'> <'nisLDAPobjectDN rpc.bynumber: \\\n'> <'\t\t\tou=rpc,?one? \\\n'> <'\t\t\tobjectClass=oncRpc:\n'> <'\n'> <'nisLDAPobjectDN\tservices.byname: \\\n'> <'\t\t\tou=services,?one? \\\n'> <'\t\t\tobjectClass=ipService:\n'> <'\n'> <'# Because services.byservicename contains keys of form both '> ) <name> (SQ <'\n'> <'# and '>) <'name/protocol'> (SQ <' we generate the DIT just from services.byname.\n'> <'# Hence, write-disabled for services.byservicename\n'> <'nisLDAPobjectDN\tservices.byservicename: \\\n'> <'\t\t\tou=services,?one? \\\n'> <'\t\t\tobjectClass=ipService\n'> <'\n'> <'# This map is never created but yppasswd uses the mapping to extract password\n'> <'# aging information from the DIT.\t\t\t\n'> <'nisLDAPobjectDN\tageing.byname: \\\n'> <'\t\t\tou=people,?one? \\\n'> <'\t\t\tobjectClass=shadowAccount:\n'> <'\n'> <'# Using nisplusTimeZoneData objectClass for compatibility with nis+2ldap\n'> <'nisLDAPobjectDN\ttimezone.byname: \\\n'> <'\t\t\tou=Timezone,?one? \\\n'> <'\t\t\tobjectClass=nisplusTimeZoneData:\n'> <'\n'> <'nisLDAPobjectDN\tuser_attr: \\\n'> <'\t\t\tou=people,?one? \\\n'> <'\t\t\tobjectClass=SolarisUserAttr:\n'> <'\n'> <'# Must come after passwd (or equivalent) that creates posixAccounts\n'> <'nisLDAPobjectDN\taudit_user: \\\n'> <'\t\t\tou=people,?one? \\\n'> <'\t\t\tobjectClass=SolarisAuditUser:\n'> <'\n'> <'# Must come after hosts + passwd.\n'> <'nisLDAPobjectDN keys.host: \\\n'> <'\t\t\tou=hosts,?one? \\\n'> <'\t\t\tobjectClass=NisKeyObject:\n'> <'\n'> <'nisLDAPobjectDN keys.pass: \\\n'> <'\t\t\tou=people,?one? \\\n'> <'\t\t\tobjectClass=NisKeyObject:\n'> <'\n'> <'nisLDAPobjectDN keys.nobody: \\\n'> <'\t\t\tou=people,?one? \\\n'> <'\t\t\tobjectClass=NisKeyObject:\\\n'> <'\t\t\tou=people,?one? \\\n'> <'\t\t\tobjectClass=account, \\\n'> <'\t\t\tobjectClass=NisKeyObject\n'> <'\t\t\t\n'> <'nisLDAPobjectDN ypservers: \\\n'> <'\t\t\tou=ypservers,?one? \\\n'> <'\t\t\tobjectClass=device:\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: list_auto_custom_nisLDAPobjectDN body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_AUTO_CUST_MAPS> var_name: ALL_DMN_AUTO_CUST_MAPS prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'# Non-default custom auto maps (auto.*)'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ForEach iter_names: [_MAP] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_AUTO_CUST_MAPS> var_name: ALL_DMN_AUTO_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_MAP_UNDERSCORE='> name: _MAP_UNDERSCORE ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName _MAP)}) (C {<sed>} { (DQ <'s/auto'> <Id.Lit_BadBackslash '\\'> <'./auto_/'> ) } ) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [15941] ) ] redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'nisLDAPobjectDN '> (${ Id.VSub_Name _MAP) <': '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <' automountmapname='> (${ Id.VSub_Name _MAP_UNDERSCORE) <',?one? '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <' objectClass=automount:\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] spids: [15878 15897] ) ] else_action: [] redirects: [] ) (C {<ask_user_to_update_the_custom_map_entries_too>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_nisLDAPobjectDN body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<CUST_CMT_NEEDED>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [ {<echo>} { (SQ <'\n'> <'# nisLDAPobjectDN : It specifies the connection between group of NIS\n'> <'# maps and the LDAP directory. This attribute also defines the '> ) <order> (SQ <'\n'> <'# of the NIS maps. When NIS maps are bulk copied to or from the DIT\n'> <'# they are processed in the same order as related nisLDAPobjectDN\n'> <'# attributes appear in /var/yp/NISLDAPmapping.\n'> <'# The format of "nisLDAPobjectDN" is :\n'> <'# \n'> <'# mapName[" "...] ":" objectDN *( ";" objectDN )\n'> <'# \n'> <'# where:\n'> <'# \n'> <'# objectDN = readObjectSpec [":"[writeObjectSpec]]\n'> <'# readObjectSpec = [baseAndScope [filterAttrValList]]\n'> <'# writeObjectSpec = [baseAndScope [attrValList]]\n'> <'# baseAndScope = [baseDN] ["?" [scope]]\n'> <'# filterAttrValList = ["?" [filter | attrValList]]]\n'> <'# scope = "base" | "one" | "sub"\n'> <'# attrValList = attribute "=" value\n'> <'# *("," attribute "=" value)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) (C {<list_default_nisLDAPobjectDN>}) (C {<list_auto_custom_nisLDAPobjectDN>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: list_default_nisLDAPattributeFromField body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {<echo>} { (SQ <'\n'> <'# Describe how named fields are mapped to DIT entries.\n'> <'\n'> <'# audit_user\n'> <'nisLDAPattributeFromField audit_user: \\\n'> <'\t\t\tdn=("uid=%s,", rf_key ), \\\n'> <'\t\t\tSolarisAuditAlways=alwaysAuditFlags, \\\n'> <'\t\t\tSolarisAuditNever=neverAuditFlags\n'> <'\n'> <'# auto.home\n'> <'nisLDAPattributeFromField auto.home: \\\n'> <'\t\t\tdn=("automountKey=%s,", rf_key ), \\\n'> <'\t\t\tautomountKey=rf_key, \\\n'> <'\t\t\tautomountInformation=value\n'> <'\n'> <'# auto.master\n'> <'nisLDAPattributeFromField auto.master: \\\n'> <'\t\t\tdn=("automountKey=%s,", rf_key ), \\\n'> <'\t\t\tautomountKey=rf_key, \\\n'> <'\t\t\tautomountInformation=value\n'> <'\n'> <'# auth_attr\n'> <'nisLDAPattributeFromField auth_attr: \\\n'> <'\t\t\tdn=("cn=%s,", rf_key ), \\\n'> <'\t\t\tcn=name, \\\n'> <'\t\t\tSolarisAttrReserved1=res1, \\\n'> <'\t\t\tSolarisAttrReserved2=res2, \\\n'> <'\t\t\tSolarisAttrShortDesc=short_desc, \\\n'> <'\t\t\tSolarisAttrLongDesc=long_desc, \\\n'> <'\t\t\tSolarisAttrKeyValue=attrs\n'> <'\n'> < '# exec_attr. Because of the messy NIS keys special handling is required here\n' > <'nisLDAPattributeFromField exec_attr: \\\n'> <'\t\t\tdn=("cn=%s+SolarisKernelSecurityPolicy=%s\\\n'> <'\t\t\t\t+SolarisProfileType=%s+SolarisProfileID=%s,", \\\n'> <'\t\t\t\tname, policy,type,id), \\\n'> <'\t\t\t("%s:*", cn)=rf_key, \\\n'> <'\t\t\t("*:%s:*", SolarisKernelSecurityPolicy)=rf_key, \\\n'> <'\t\t\t("*:*:%s", SolarisProfileId)=rf_key, \\\n'> <'\t\t\tsolarisProfileType=type, \\\n'> <'\t\t\tsolarisAttrReserved1=res1, \\\n'> <'\t\t\tSolarisAttrReserved2=res2, \\\n'> <'\t\t\tsolarisAttrKeyValue=attrs\n'> <'\n'> <'# ethers\n'> <'nisLDAPattributeFromField ethers.byname: \\\n'> <'\t\t\tdn=("cn=%s,", rf_key ), \\\n'> <'\t\t\tmacAddress=addr\n'> <'nisLDAPattributeFromField ethers.byaddr: \\\n'> <'\t\t\tdn=("cn=%s,", name ), \\\n'> <'\t\t\tmacAddress=rf_key\n'> <'nisLDAPattributeFromField ethers: \\\n'> <'\t\t\tcn=name, \\\n'> <'\t\t\tdescription=rf_comment\n'> <'\n'> <'# bootparams. Must be done after ethers\n'> <'nisLDAPattributeFromField bootparams: \\\n'> <'\t\t\tdn=("cn=%s,", rf_key ), \\\n'> <'\t\t\tcn=rf_key, \\\n'> <'\t\t\t(bootParameter)=(params, " ")\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {<group.adjunct.byname>} spids: [16181] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] negated: T stderr_indices: [] ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'# group\n'> <'nisLDAPattributeFromField group.byname: \\\n'> <'\t\t\tdn=("cn=%s,", rf_key ), \\\n'> <' gidNumber=gid\n'> <'nisLDAPattributeFromField group.bygid: \\\n'> <'\t\t dn=("cn=%s,", name ), \\\n'> <' gidNumber=rf_key\n'> <'nisLDAPattributeFromField group: \\\n'> <' cn=name, \\\n'> <' userPassword=("{crypt}%s",passwd), \\\n'> <' (memberUid)=(users, ",")\n'> <'\n'> <'#\n'> <'# If you are using group.adjunct, comment the group section above\n'> <'# and uncomment the following group and group.adjunct sections\n'> <'#\n'> <'# group\n'> <'#nisLDAPattributeFromField group.byname: \\\n'> <'#\t\t\tdn=("cn=%s,", rf_key ), \\\n'> <'#\t\t\tgidNumber=gid\n'> <'#nisLDAPattributeFromField group.bygid: \\\n'> <'#\t\t\tdn=("cn=%s,", name ), \\\n'> <'#\t\t\tgidNumber=rf_key\n'> <'#nisLDAPattributeFromField group: \\\n'> <'#\t\t\tcn=name, \\\n'> <'#\t\t\t(memberUid)=(users, ",")\n'> <'\n'> <'# group.adjunct\n'> <'#nisLDAPattributeFromField group.adjunct.byname: \\\n'> <'#\t\t\tdn=("cn=%s,", rf_key ), \\\n'> <'#\t\t\tcn=name, \\\n'> <'#\t\t\tuserPassword=("{crypt}%s",passwd)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [16185 16195] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'# group\n'> <'#nisLDAPattributeFromField group.byname: \\\n'> <'#\t\t\tdn=("cn=%s,", rf_key ), \\\n'> <'#\t\t\tgidNumber=gid\n'> <'#nisLDAPattributeFromField group.bygid: \\\n'> <'#\t\t\tdn=("cn=%s,", name ), \\\n'> <'#\t\t\tgidNumber=rf_key\n'> <'#nisLDAPattributeFromField group: \\\n'> <'#\t\t\tcn=name, \\\n'> <'#\t\t\tuserPassword=("{crypt}%s",passwd), \\\n'> <'#\t\t\t(memberUid)=(users, ",")\n'> <'\n'> < '# If you are not using group.adjunct, uncomment the group section above\n' > <'# and comment the following group and group.adjunct sections\n'> <'#\n'> <'# group\n'> <'nisLDAPattributeFromField group.byname: \\\n'> <'\t\t\tdn=("cn=%s,", rf_key ), \\\n'> <'\t\t\tgidNumber=gid\n'> <'nisLDAPattributeFromField group.bygid: \\\n'> <'\t\t\tdn=("cn=%s,", name ), \\\n'> <'\t\t\tgidNumber=rf_key\n'> <'nisLDAPattributeFromField group: \\\n'> <'\t\t\tcn=name, \\\n'> <'\t\t\t(memberUid)=(users, ",")\n'> <'\n'> <'# group.adjunct\n'> <'nisLDAPattributeFromField group.adjunct.byname: \\\n'> <'\t\t\tdn=("cn=%s,", rf_key ), \\\n'> <'\t\t\tcn=name, \\\n'> <'\t\t\tuserPassword=("{crypt}%s",passwd)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [16262 16275] ) ] else_action: [ (command.Simple words: [{<echo>} {(DQ <'# group'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'# domain-specific group\n'> <'nisLDAPattributeFromField group.byname,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tdn=('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'cn=%s,'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <', rf_key ), '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tgidNumber=gid\n'> <'nisLDAPattributeFromField group.bygid,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tdn=('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'cn=%s,'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <', name ), '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tgidNumber=rf_key\n'> <'nisLDAPattributeFromField group,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tcn=name, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\t(memberUid)=(users, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <','> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <')\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) (command.Simple words: [ {<echo>} { (SQ <'\n'> <'nisLDAPattributeFromField group.byname: \\\n'> <'\t\t\tdn=("cn=%s,", rf_key ), \\\n'> <'\t\t\tgidNumber=gid\n'> <'nisLDAPattributeFromField group.bygid: \\\n'> <'\t\t\tdn=("cn=%s,", name ), \\\n'> <'\t\t\tgidNumber=rf_key\n'> <'nisLDAPattributeFromField group: \\\n'> <'\t\t\tcn=name, \\\n'> <'\t\t\tuserPassword=("{crypt}%s",passwd), \\\n'> <'\t\t\t(memberUid)=(users, ",")\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'# group.adjunct'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPattributeFromField group.adjunct.byname,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tdn=('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'cn=%s,'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <', rf_key ), '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tcn=name, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tuserPassword=('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'{crypt}%s'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <',passwd)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.Simple words: [ {<echo>} { (SQ <'\n'> <'# hosts\n'> < '# Cannot forward map hosts.byname key as the YP_MULTI entries will not work.\n' > <'nisLDAPattributeFromField hosts.byname: \\\n'> <' cn=rf_searchkey\n'> <'nisLDAPattributeFromField hosts.byaddr: \\\n'> <' ipHostNumber=rf_searchipkey\n'> <'nisLDAPattributeFromField hosts: \\\n'> <' ipHostNumber=addr, \\\n'> <'\t\t\tdn=("cn=%s+ipHostNumber=%s,", canonicalName, addr), \\\n'> <' cn=canonicalName, \\\n'> <' (cn)=(aliases, " "), \\\n'> <' description=rf_comment\n'> <'\n'> <'nisLDAPattributeFromField multihosts: \\\n'> <'\t\t\t("YP_MULTI_%s", cn)=rf_searchkey\n'> <'\n'> <'# ipnodes\n'> <'# Cannot forward map ipnodes.byname key as the YP_MULTI entries will not work.\n'> <'nisLDAPattributeFromField ipnodes.byname: \\\n'> <' cn=rf_searchkey\n'> <'nisLDAPattributeFromField ipnodes.byaddr: \\\n'> <' ipHostNumber=rf_searchipkey\n'> <'nisLDAPattributeFromField ipnodes: \\\n'> <' ipHostNumber=addr, \\\n'> <'\t\t\tdn=("cn=%s+ipHostNumber=%s,", canonicalName, addr), \\\n'> <'\t\t\tcn=canonicalName, \\\n'> <' (cn)=(aliases, " "), \\\n'> <' description=rf_comment\n'> <'\n'> <'nisLDAPattributeFromField multiipnodes: \\\n'> <'\t\t\t("YP_MULTI_%s", cn)=rf_searchkey\n'> <'\n'> <'#mail.aliases\n'> <'nisLDAPattributeFromField mail.aliases: \\\n'> <'\t\t\tdn=("mail=%s,", rf_key), \\\n'> <'\t\t\tmail=rf_key, \\\n'> <'\t\t\t(mgrprfc822mailmember)=(addresses, ",")\n'> <'\n'> <'#mail.mapping\n'> <'#Commented out because all NIS->LDAP mappings are done by mail.aliases\n'> <'#nisLDAPattributeFromField mail.mapping: \\\n'> <'#\t\t\tdn=("mail=%s,", address), \\\n'> <'#\t\t\tmail=address, \\\n'> <'#\t\t\tmgrprfc822mailmember=rf_key\n'> <'nisLDAPattributeFromField mail.mapping: \\\n'> <'\t\t\tmgrprfc822mailmember=rf_searchkey\n'> <'\n'> <'# netgroup.\n'> <'#\n'> <'# Only need to create DIT entries for netgroup. This contains a superset of\n'> <'# the information in netgroup.byhost and netgroup.byuser\n'> <'nisLDAPattributeFromField netgroup: \\\n'> <'\t\t\tdn=("cn=%s,", rf_key ), \\\n'> <'\t\t\t(memberNisNetgroup)=group, \\\n'> <'\t\t\t(nisNetgroupTriple)= \\\n'> <'\t\t\t\t\t("(%s,%s,%s)", host, user, domain), \\\n'> <'\t\t\tcn=rf_key, \\\n'> <'\t\t\tdescription=rf_comment\n'> <'\n'> <'# netid.pass\n'> <'#\n'> <'# Commented out because, unless remote domains (and thus /etc/netid) is\n'> <'# supported, all NIS->LDAP mappings are set up from passwd.\n'> <'#nisLDAPattributeFromField netid.pass: \\\n'> <'#\t\t\t("unix.%s@*", uidNumber)=rf_key, \\\n'> <'#\t\t\t(gidNumber)=("%s", (data), " "), \\\n'> <'#\t\t\tdescription=rf_comment\n'> <'nisLDAPattributeFromField netid.pass: \\\n'> <'\t\t\t("unix.%s@*", uidNumber)=rf_searchkey\n'> <'\n'> <'# netid.host\n'> <'#\n'> <'# Commented out because, unless remote domains (and thus /etc/netid) is\n'> <'# supported, all NIS->LDAP mappings are set up from hosts.\n'> <'#nisLDAPattributeFromField netid.host: \\\n'> <'#\t\t\tdn=("cn=%s+ipHostNumber=%s,", data, \\\n'> <'#\t\t\t ldap:ipHostNumber:?one?("cn=%s", data)), \\\n'> <'#\t\t\tipHostNumber=ldap:ipHostNumber:?one?("cn=%s", data), \\\n'> <'#\t\t\t("unix.%s@*", cn)=rf_key, \\\n'> <'#\t\t\tdescription=rf_comment\n'> <'nisLDAPattributeFromField netid.host: \\\n'> <'\t\t\t("unix.%s@*", cn)=rf_searchkey\n'> <'\n'> <'# netmasks.byaddr\n'> <'nisLDAPattributeFromField netmasks.byaddr: \\\n'> <'\t\t\tdn=("ipNetworkNumber=%s,", rf_ipkey ), \\\n'> <'\t\t\tipNetworkNumber=rf_ipkey, \\\n'> <'\t\t\tipNetmaskNumber=mask, \\\n'> <'\t\t\tdescription=rf_comment\n'> <'\n'> <'# networks.\n'> <'nisLDAPattributeFromField networks.byname: \\\n'> <'\t\t\tdn=("ipNetworkNumber=%s,", number ), \\\n'> <'\t\t\tcn=name, \\\n'> <'\t\t\tcn=rf_key\n'> <'nisLDAPattributeFromField networks.byaddr: \\\n'> <'\t\t\tdn=("ipNetworkNumber=%s,", rf_key ), \\\n'> <'\t\t\tcn=name\n'> <'nisLDAPattributeFromField networks: \\\n'> <'\t\t\t(cn)=(aliases, " "), \\\n'> <'\t\t\tipNetworkNumber=number, \\\n'> <'\t\t\tdescription=rf_comment\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {<passwd.adjunct.byname>} spids: [16659] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] negated: T stderr_indices: [] ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'# passwd\n'> <'nisLDAPattributeFromField passwd.byname: \\\n'> <'\t\t\tdn=("uid=%s,", rf_key ), \\\n'> <'\t\t\tuid=rf_key, \\\n'> <'\t\t\tuidNumber=uid\n'> <'nisLDAPattributeFromField passwd.byuid: \\\n'> <'\t\t\tdn=("uid=%s,", name ), \\\n'> <'\t\t\tuidNumber=rf_key, \\\n'> <'\t\t\tuid=name\n'> <'nisLDAPattributeFromField passwd: \\\n'> <'\t\t\tcn=name, \\\n'> <'\t\t\tuserPassword=("{crypt}%s",passwd), \\\n'> <'\t\t\tgidNumber=gid, \\\n'> <'\t\t\tgecos=gecos, \\\n'> <'\t\t\thomeDirectory=home, \\\n'> <'\t\t\tloginShell=shell\n'> <'\n'> <'#\n'> < '# If you are using passwd.adjunct, comment the passwd section above\n' > <'# and uncomment the following passwd and passwd.adjunct sections\n'> <'#\n'> <'# passwd\n'> <'#nisLDAPattributeFromField passwd.byname: \\\n'> <'#\t\t\tdn=("uid=%s,", rf_key ), \\\n'> <'#\t\t\tuid=rf_key, \\\n'> <'#\t\t\tuidNumber=uid\n'> <'#nisLDAPattributeFromField passwd.byuid: \\\n'> <'#\t\t\tdn=("uid=%s,", name ), \\\n'> <'#\t\t\tuidNumber=rf_key, \\\n'> <'#\t\t\tuid=name\n'> <'#nisLDAPattributeFromField passwd: \\\n'> <'#\t\t\tcn=name, \\\n'> <'#\t\t\tgidNumber=gid, \\\n'> <'#\t\t\tgecos=gecos, \\\n'> <'#\t\t\thomeDirectory=home, \\\n'> <'#\t\t\tloginShell=shell\n'> <'\n'> <'# passwd.adjunct\n'> <'#nisLDAPattributeFromField passwd.adjunct.byname: \\\n'> <'#\t\t\tdn=("uid=%s,", rf_key ), \\\n'> <'#\t\t\tuid=name, \\\n'> <'#\t\t\tuserPassword=("{crypt}%s",passwd)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [16663 16673] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'# passwd\n'> <'#nisLDAPattributeFromField passwd.byname: \\\n'> <'#\t\t\tdn=("uid=%s,", rf_key ), \\\n'> <'#\t\t\tuid=rf_key, \\\n'> <'#\t\t\tuidNumber=uid\n'> <'#nisLDAPattributeFromField passwd.byuid: \\\n'> <'#\t\t\tdn=("uid=%s,", name ), \\\n'> <'#\t\t\tuidNumber=rf_key, \\\n'> <'#\t\t\tuid=name\n'> <'#nisLDAPattributeFromField passwd: \\\n'> <'#\t\t\tcn=name, \\\n'> <'#\t\t\tuserPassword=("{crypt}%s",passwd), \\\n'> <'#\t\t\tgidNumber=gid, \\\n'> <'#\t\t\tgecos=gecos, \\\n'> <'#\t\t\thomeDirectory=home, \\\n'> <'#\t\t\tloginShell=shell\n'> <'\n'> < '# If you are not using passwd.adjunct, uncomment the passwd section above\n' > <'# and comment the following passwd and passwd.adjunct sections\n'> <'#\n'> <'# passwd\n'> <'nisLDAPattributeFromField passwd.byname: \\\n'> <'\t\t\tdn=("uid=%s,", rf_key ), \\\n'> <'\t\t\tuid=rf_key, \\\n'> <'\t\t\tuidNumber=uid\n'> <'nisLDAPattributeFromField passwd.byuid: \\\n'> <'\t\t\tdn=("uid=%s,", name ), \\\n'> <'\t\t\tuidNumber=rf_key, \\\n'> <'\t\t\tuid=name\n'> <'nisLDAPattributeFromField passwd: \\\n'> <'\t\t\tcn=name, \\\n'> <'\t\t\tgidNumber=gid, \\\n'> <'\t\t\tgecos=gecos, \\\n'> <'\t\t\thomeDirectory=home, \\\n'> <'\t\t\tloginShell=shell\n'> <'\n'> <'# passwd.adjunct\n'> <'nisLDAPattributeFromField passwd.adjunct.byname: \\\n'> <'\t\t\tdn=("uid=%s,", rf_key ), \\\n'> <'\t\t\tuid=name, \\\n'> <'\t\t\tuserPassword=("{crypt}%s",passwd)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [16750 16763] ) ] else_action: [ (command.Simple words: [{<echo>} {(DQ <'# passwd'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPattributeFromField passwd.byname,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tdn=('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'uid=%s,'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <', rf_key ), '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tuid=rf_key, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tuidNumber=uid\n'> <'nisLDAPattributeFromField passwd.byuid,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tdn=('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'uid=%s,'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <', name ), '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tuidNumber=rf_key, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tuid=name\n'> <'nisLDAPattributeFromField passwd,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tcn=name, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tgidNumber=gid, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tgecos=gecos, '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\thomeDirectory=home, '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tloginShell=shell\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) (command.Simple words: [ {<echo>} { (SQ <'\n'> <'nisLDAPattributeFromField passwd.byname: \\\n'> <'\t\t\tdn=("uid=%s,", rf_key ), \\\n'> <'\t\t\tuid=rf_key, \\\n'> <'\t\t\tuidNumber=uid\n'> <'nisLDAPattributeFromField passwd.byuid: \\\n'> <'\t\t\tdn=("uid=%s,", name ), \\\n'> <'\t\t\tuidNumber=rf_key, \\\n'> <'\t\t\tuid=name\n'> <'nisLDAPattributeFromField passwd: \\\n'> <'\t\t\tcn=name, \\\n'> <'\t\t\tuserPassword=("{crypt}%s",passwd), \\\n'> <'\t\t\tgidNumber=gid, \\\n'> <'\t\t\tgecos=gecos, \\\n'> <'\t\t\thomeDirectory=home, \\\n'> <'\t\t\tloginShell=shell\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'# passwd.adjunct'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPattributeFromField passwd.adjunct.byname,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tdn=('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'uid=%s,'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <', rf_key ), '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tuid=name, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tuserPassword=('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'{crypt}%s'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <',passwd)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.Simple words: [ {<echo>} { (SQ <'\n'> < '# This map is never created but yppasswd uses the mapping to extract password\n' > <'# aging information from the DIT.\t\n'> <'nisLDAPattributeFromField ageing.byname: \\\n'> <'\t\t\tdn=("uid=%s,", rf_key ), \\\n'> <'\t\t\tuid=name, \\\n'> <'\t\t\tshadowLastChange=lastchg, \\\n'> <'\t\t\tshadowMin=min, \\\n'> <'\t\t\tshadowMax=max, \\\n'> <'\t\t\tshadowWarning=warn, \\\n'> <'\t\t\tshadowInactive=inactive, \\\n'> <'\t\t\tshadowExpire=expire, \\\n'> <'\t\t\tshadowFlag=flag\n'> <'\n'> <'# printers.conf.byname\n'> <'nisLDAPattributeFromField printers.conf.byname: \\\n'> <'\t\t\tdn=("printer-uri=%s,", rf_key ), \\\n'> <'\t\t\tprinter-name=rf_key, \\\n'> <'\t\t\t(printer-aliases)=(names, "|"), \\\n'> <'\t\t\tsun-printer-bsdaddr=(values, "*bsdaddr=%s:*"), \\\n'> <'\t\t\t(sun-printer-kvp)=(values,":"), \\\n'> <'\t\t\tdescription=rf_comment \n'> <'\n'> <'# prof_attr\n'> <'nisLDAPattributeFromField prof_attr: \\\n'> <'\t\t\tdn=("cn=%s,", rf_key ), \\\n'> <'\t\t\tcn=name, \\\n'> <'\t\t\tSolarisAttrReserved1=res1, \\\n'> <'\t\t\tSolarisAttrReserved2=res2, \\\n'> <'\t\t\tSolarisAttrLongDesc=desc, \\\n'> <'\t\t\tSolarisAttrKeyValue=attrs\n'> <'\n'> <'# project\n'> <'nisLDAPattributeFromField project.byname: \\\n'> <'\t\t\tdn=("SolarisProjectName=%s,", rf_key )\n'> <'nisLDAPattributeFromField project.byprojid: \\\n'> <'\t\t\tdn=("SolarisProjectName=%s,", name ), \\\n'> <'\t\t\tSolarisProjectID=rf_searchkey\n'> <'nisLDAPattributeFromField project: \\\n'> <'\t\t\tSolarisProjectName=name, \\\n'> <'\t\t\tSolarisProjectID=projID, \\\n'> <'\t\t\t(memberUid)=(users, ","), \\\n'> <'\t\t\t(memberGid)=(groups, ","), \\\n'> <'\t\t\t(SolarisProjectAttr)=(attrs, ";"), \\\n'> <'\t\t\tdescription=comment\n'> <'\n'> <'# protocols\n'> <'nisLDAPattributeFromField protocols.byname: \\\n'> <' ipProtocolNumber=number, \\\n'> <' cn=rf_searchkey\n'> <'nisLDAPattributeFromField protocols.bynumber: \\\n'> <' ipProtocolNumber=rf_key, \\\n'> <' description=rf_comment\n'> <'nisLDAPattributeFromField protocols: \\\n'> <'\t\t\tdn=("cn=%s,", name ), \\\n'> <' (cn)=(aliases, " "), \\\n'> <'\t\t\tcn=name\n'> <'\n'> <'# rpc.bynumber\n'> <'nisLDAPattributeFromField rpc.bynumber: \\\n'> <'\t\t\tdn=("cn=%s,", name ), \\\n'> <'\t\t\toncRpcNumber=rf_key, \\\n'> <' (cn)=(aliases, " "), \\\n'> <'\t\t\tcn=name, \\\n'> <'\t\t\tdescription=rf_comment \n'> <'\n'> <'# services\n'> <'# services.byservicename rule is only used to speed single search\n'> <'nisLDAPattributeFromField services.byservicename: \\\n'> <'\t\t\t("%s/%s", cn, ipServiceProtocol) = rf_searchkey\n'> <'\n'> <'nisLDAPattributeFromField services.byname: \\\n'> <'\t\t\tdn=("cn=%s+ipServiceProtocol=%s,", name, protocol ), \\\n'> <' \t\t\t("*/%s", ipServiceProtocol)=rf_key, \\\n'> <' \t\t\t("%s/*", ipServicePort)=rf_key, \\\n'> <' (cn)=(aliases, " "), \\\n'> <'\t\t\tcn=name, \\\n'> <' description=rf_comment\n'> <'\n'> <'# timezone.byname\n'> <'nisLDAPattributeFromField timezone.byname: \\\n'> <'\t\t\tdn=("cn=%s,", rf_key ), \\\n'> <'\t\t\tcn=hostName, \\\n'> <'\t\t\tnisplusTimeZone=zoneName, \\\n'> <'\t\t\tdescription=comment\n'> <'\n'> <'# user_attr\n'> <'nisLDAPattributeFromField user_attr: \\\n'> <'\t\t\tdn=("uid=%s,", rf_key ), \\\n'> <'\t\t\tuid=rf_key, \\\n'> <'\t\t\tSolarisUserAttr=qualifier, \\\n'> <'\t\t\tSolarisUserReserved1=res1, \\\n'> <'\t\t\tSolarisUserReserved2=res2, \\\n'> <'\t\t\tSolarisAttrKeyValue=attrs\n'> <'\n'> <'# publickey.byname\n'> <'nisLDAPattributeFromField keys.host: \\\n'> <'\t\t\tdn=("%s", ldap:dn:?one?("cn=%s", (yp:rf_key, "unix.%s@*"))), \\\n'> <'\t\t\tnisPublicKey=publicKey, \\\n'> <'\t\t\tnisSecretKey=secretKey\n'> <'\n'> <'nisLDAPattributeFromField keys.pass: \\\n'> < '\t\t\tdn=("%s", ldap:dn:?one?("uidNumber=%s", (yp:rf_key, "unix.%s@*"))), \\\n' > <'\t\t\tnisPublicKey=publicKey, \\\n'> <'\t\t\tnisSecretKey=secretKey\n'> <'\n'> <'nisLDAPattributeFromField keys.nobody: \\\n'> <'\t\t\tdn=("uid=%s,",yp:rf_key), \\\n'> <'\t\t\tcn=rf_key, \\\n'> <'\t\t\tnisPublicKey=publicKey, \\\n'> <'\t\t\tnisSecretKey=secretKey\n'> <'\n'> <'# ypservers. This derived from IPlanet implementation not RFC.\n'> <'nisLDAPattributeFromField ypservers: \\\n'> <'\t\t\tdn=("cn=%s,", rf_key), \\\n'> <'\t\t\tcn=rf_key\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: list_auto_and_custom_nisLDAPattributeFromField body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_AUTO_CUST_MAPS> var_name: ALL_DMN_AUTO_CUST_MAPS prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'# Non-default custom auto maps (auto.*)'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [17202 17221] ) ] else_action: [] redirects: [] ) (command.ForEach iter_names: [_MAP] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_AUTO_CUST_MAPS> var_name: ALL_DMN_AUTO_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'# '> (${ Id.VSub_Name _MAP) <'\n'> <'nisLDAPattributeFromField '> (${ Id.VSub_Name _MAP) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <' dn=('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'automountKey=%s,'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <', rf_key ), '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <' automountKey=rf_key, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <' automountInformation=value\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) (C {<ask_user_to_update_the_custom_map_entries_too>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_nisLDAPattributeFromField body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<CUST_CMT_NEEDED>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [ {<echo>} { (SQ <'\n'> <'# nisLDAPattributeFromField : It specifies how an LDAP attribute\n'> <'# value is derived from a NIS entries field values.\n'> <'# \n'> <'# The format of nisLDAPattributeFromField entry is :\n'> <'# mapName ":" fieldattrspec *("," fieldattrspec )\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) (C {<list_default_nisLDAPattributeFromField>}) (C {<list_auto_and_custom_nisLDAPattributeFromField>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'#\n'> < '#------------------------------------------------------------------------------\n' > <'#\t\t\t \n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: list_default_nisLDAPfieldFromAttribute body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {<echo>} { (SQ <'\n'> <'# Describe how named fields are mapped from DIT entries.\n'> <'\n'> <'# audit_user\n'> <'nisLDAPfieldFromAttribute audit_user: \\\n'> <'\t\t\t("uid=%s,*", rf_key)=dn, \\\n'> <'\t\t\t("uid=%s,*", name)=dn, \\\n'> <'\t\t\talwaysAuditFlags=SolarisAuditAlways, \\\n'> <'\t\t\tneverAuditFlags=SolarisAuditNever\n'> <'\n'> <'# auto.home\n'> <'nisLDAPfieldFromAttribute auto.home: \\\n'> <'\t\t\trf_key=automountKey, \\\n'> <'\t\t\tvalue=automountInformation\n'> <'\n'> <'# auto.master\n'> <'nisLDAPfieldFromAttribute auto.master: \\\n'> <'\t\t\trf_key=automountKey, \\\n'> <'\t\t\tvalue=automountInformation\n'> <'\n'> <'# auth_attr\n'> <'nisLDAPfieldFromAttribute auth_attr: \\\n'> <'\t\t\trf_key=cn, \\\n'> <'\t\t\tname=cn, \\\n'> <'\t\t\tres1=SolarisAttrReserved1, \\\n'> <'\t\t\tres2=SolarisAttrReserved2, \\\n'> <'\t\t\tshort_desc=SolarisAttrShortDesc, \\\n'> <'\t\t\tlong_desc=SolarisAttrLongDesc, \\\n'> <'\t\t\tattrs=SolarisAttrKeyValue\n'> <'\n'> <'# Exec_attr. Because of messy NIS keys special handlind is required here\n'> <'nisLDAPfieldFromAttribute exec_attr: \\\n'> <'\t\t\trf_key=("%s:%s:%s",cn,SolarisKernelSecurityPolicy, \\\n'> <'\t\t\t\tsolarisProfileId), \\\n'> <'\t\t\tname=cn, \\\n'> <'\t\t\tpolicy=SolarisKernelSecurityPolicy, \\\n'> <'\t\t\ttype=SolarisProfileType, \\\n'> <'\t\t\tres1=SolarisAttrReserved1, \\\n'> <'\t\t\tres2=SolarisAttrReserved2, \\\n'> <'\t\t\tid=SolarisProfileId, \\\n'> <'\t\t\tattrs=SolarisAttrKeyValue\n'> <'\n'> <'\n'> <'# ethers\n'> <'nisLDAPfieldFromAttribute ethers.byname: \\\n'> <'\t\t\trf_key=cn\n'> <'nisLDAPfieldFromAttribute ethers.byaddr: \\\n'> <'\t\t\trf_key=macAddress\n'> <'nisLDAPfieldFromAttribute ethers: \\\n'> <'\t\t\tname=cn, \\\n'> <'\t\t\taddr=macAddress, \\\n'> <'\t\t\trf_comment=description\n'> <'\n'> <'# bootparams. Must be done after ethers\n'> <'nisLDAPfieldFromAttribute bootparams: \\\n'> <'\t\t\trf_key=cn, \\\n'> <'\t\t\tparams=("%s ", (bootParameter), " ")\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {<group.adjunct.byname>} spids: [17470] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] negated: T stderr_indices: [] ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'# group\n'> <'nisLDAPfieldFromAttribute group.byname: \\\n'> <'\t\t\trf_key=cn\n'> <'nisLDAPfieldFromAttribute group.bygid: \\\n'> <' rf_key=gidNumber\n'> <'nisLDAPfieldFromAttribute group: \\\n'> <' gid=gidNumber, \\\n'> <' name=cn, \\\n'> <'\t\t\t("{crypt}%s", passwd)=userPassword, \\\n'> <'\t\t\tusers=("%s,", (memberUid), ",")\n'> <'\n'> <'#\n'> <'# If you are using group.adjunct, comment the group section above\n'> <'# and uncomment the following group and group.adjunct section\n'> <'#\t\t\t\n'> <'# group\n'> <'#nisLDAPfieldFromAttribute group.byname: \\\n'> <'#\t\t\trf_key=cn\n'> <'#nisLDAPfieldFromAttribute group.bygid: \\\n'> <'#\t\t\trf_key=gidNumber\n'> <'#nisLDAPfieldFromAttribute group: \\\n'> <'#\t\t\tgid=gidNumber, \\\n'> <'#\t\t\tname=cn, \\\n'> <'#\t\t\tpasswd=("#$%s", cn), \\\n'> <'#\t\t\tusers=("%s,", (memberUid), ",")\n'> <'\n'> <'# group.adjunct\n'> <'#nisLDAPfieldFromAttribute group.adjunct.byname: \\\n'> <'#\t\t\trf_key=cn, \\\n'> <'#\t\t\tname=cn, \\\n'> <'#\t\t\t("{crypt}%s", passwd)=userPassword\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [17474 17484] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'# group\n'> <'#nisLDAPfieldFromAttribute group.byname: \\\n'> <'#\t\t\trf_key=cn\n'> <'#nisLDAPfieldFromAttribute group.bygid: \\\n'> <'# rf_key=gidNumber\n'> <'#nisLDAPfieldFromAttribute group: \\\n'> <'# gid=gidNumber, \\\n'> <'# name=cn, \\\n'> <'#\t\t\t("{crypt}%s", passwd)=userPassword, \\\n'> <'#\t\t\tusers=("%s,", (memberUid), ",")\n'> <'\n'> <'#\n'> < '# If you are not using group.adjunct, comment the group section above\n' > <'# and uncomment the following group and group.adjunct sections\n'> <'#\t\t\t\n'> <'# group \n'> <'nisLDAPfieldFromAttribute group.byname: \\\n'> <'\t\t\trf_key=cn\n'> <'nisLDAPfieldFromAttribute group.bygid: \\\n'> <'\t\t\trf_key=gidNumber\n'> <'nisLDAPfieldFromAttribute group: \\\n'> <'\t\t\tgid=gidNumber, \\\n'> <'\t\t\tname=cn, \\\n'> <'\t\t\tpasswd=("#$%s", cn), \\\n'> <'\t\t\tusers=("%s,", (memberUid), ",")\n'> <'\n'> <'#\n'> <'# group.adjunct\n'> <'nisLDAPfieldFromAttribute group.adjunct.byname: \\\n'> <'\t\t\trf_key=cn, \\\n'> <'\t\t\tname=cn, \\\n'> <'\t\t\t("{crypt}%s", passwd)=userPassword\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [17550 17563] ) ] else_action: [ (command.Simple words: [{<echo>} {(DQ <'# group'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPfieldFromAttribute group.byname,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\trf_key=cn\n'> <'nisLDAPfieldFromAttribute group.bygid,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\trf_key=gidNumber\n'> <'nisLDAPfieldFromAttribute group,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tgid=gidNumber, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tname=cn, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tpasswd=('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'#'> <Id.Lit_Dollar '$'> <'%s'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <', cn), '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tusers=('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'%s,'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <', (memberUid), '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <','> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <')\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) (command.Simple words: [ {<echo>} { (SQ <'\n'> <'nisLDAPfieldFromAttribute group.byname: \\\n'> <'\t\t\trf_key=cn\n'> <'nisLDAPfieldFromAttribute group.bygid: \\\n'> <' rf_key=gidNumber\n'> <'nisLDAPfieldFromAttribute group: \\\n'> <' gid=gidNumber, \\\n'> <' name=cn, \\\n'> <'\t\t\t("{crypt}%s", passwd)=userPassword, \\\n'> <'\t\t\tusers=("%s,", (memberUid), ",")\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'#\n'> <'# group.adjunct\n'> <'# '>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPfieldFromAttribute group.adjunct.byname,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\trf_key=cn, '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tname=cn, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\t('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'{crypt}%s'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <', passwd)=userPassword\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.Simple words: [ {<echo>} { (SQ <'\n'> <'# hosts\n'> <'nisLDAPfieldFromAttribute hosts.byaddr: \\\n'> <' rf_ipkey=ipHostNumber\n'> <'nisLDAPfieldFromAttribute hosts.byname: \\\n'> <'\t\t\t(rf_key)=(cn)\n'> <'nisLDAPfieldFromAttribute hosts: \\\n'> <'\t\t\t("cn=%s+ipHostNumber=*", canonicalName)=dn, \\\n'> <' addr=ipHostNumber, \\\n'> <'\t\t\taliases=("%s ", (cn) - yp:canonicalName, " "), \\\n'> <' rf_comment=description\n'> <'\n'> <'nisLDAPfieldFromAttribute multihosts: \\\n'> <'\t\t\t("cn=%s+ipHostNumber=*", canonicalName)=dn, \\\n'> <'\t\t\t(rf_key)=("YP_MULTI_%s", cn), \\\n'> <'\t\t\taliases=("%s ", (cn) - yp:canonicalName, " "), \\\n'> <'\t\t\trf_comment=description, \\\n'> <'\t\t\t(tmp)=("%s", ipHostNumber:?one?("(&(cn=%s) \\\n'> <'\t\t\t\t(ipHostNumber=*.*))", yp:canonicalName)), \\\n'> <'\t\t\taddr=("%s,", (yp:tmp), ",")\n'> <'\n'> <'# ipnodes\n'> <'nisLDAPfieldFromAttribute ipnodes.byaddr: \\\n'> <' rf_ipkey=ipHostNumber\n'> <'nisLDAPfieldFromAttribute ipnodes.byname: \\\n'> <'\t\t\t(rf_key)=(cn)\n'> <'nisLDAPfieldFromAttribute ipnodes: \\\n'> <'\t\t\t("cn=%s+ipHostNumber=*", canonicalName)=dn, \\\n'> <' addr=ipHostNumber, \\\n'> <'\t\t\taliases=("%s ", (cn) - yp:canonicalName, " "), \\\n'> <' rf_comment=description\n'> <'\n'> <'nisLDAPfieldFromAttribute multiipnodes: \\\n'> <'\t\t\t("cn=%s+ipHostNumber=*", canonicalName)=dn, \\\n'> <'\t\t\t(rf_key)=("YP_MULTI_%s", cn), \\\n'> <'\t\t\taliases=("%s ", (cn) - yp:canonicalName, " "), \\\n'> <'\t\t\trf_comment=description, \\\n'> <'\t\t\t(tmp)=("%s", ipHostNumber:?one?("(&(cn=%s) \\\n'> <'\t\t\t\t(ipHostNumber=*:*))", yp:canonicalName)), \\\n'> <'\t\t\taddr=("%s,", (yp:tmp), ",")\n'> <'\n'> <'#mail.aliases\n'> <'nisLDAPfieldFromAttribute mail.aliases: \\\n'> <'\t\t\trf_key=mail, \\\n'> <'\t\t\taddresses= ("%s,", (mgrprfc822mailmember), ","), \\\n'> <'\t\t\trf_comment=description\n'> <'\n'> <'#mail.mapping\n'> <'nisLDAPfieldFromAttribute mail.mapping: \\\n'> <'\t\t\trf_key=mgrprfc822mailmember, \\\n'> <'\t\t\taddress=mail, \\\n'> <'\t\t\trf_comment=description\n'> <'\n'> <'# netgroup.\n'> <'nisLDAPfieldFromAttribute netgroup: \\\n'> <'\t\t\trf_key=cn, \\\n'> <'\t\t\t(group)=(memberNisNetgroup), \\\n'> <'\t\t\t("(%s,%s,%s)", host, user, domain)= \\\n'> <'\t\t\t\t\t\t(nisNetgroupTriple), \\\n'> <'\t\t\trf_comment=description\n'> <'\n'> <'# netid.pass\n'> <'nisLDAPfieldFromAttribute netid.pass: \\\n'> <'\t\t\tnumber=uidNumber, \\\n'> <'\t\t\t(tmp)=("%s", gidNumber:ou=group,?one?\\\n'> <'\t\t\t\t("memberUid=%s", ldap:uid)), \\\n'> <'\t\t\tsgid=("%s,", (yp:tmp) - gidNumber, ","), \\\n'> <'\t\t\tdata=("%s,%s", gidNumber, yp:sgid), \\\n'> <'\t\t\tdata=gidNumber, \\\n'> <'\t\t\t(rf_key)=("unix.%s@%s", yp:number, yp:rf_domain)\n'> <'\n'> <'# netid.host\n'> <'nisLDAPfieldFromAttribute netid.host: \\\n'> <'\t\t\t("cn=%s+ipHostNumber=*", data)=dn, \\\n'> <'\t\t\tnumber=("0"), \\\n'> <'\t\t\t(rf_key)=("unix.%s@%s", yp:data, yp:rf_domain)\n'> <'\n'> <'# netmasks.byaddr\n'> <'nisLDAPfieldFromAttribute netmasks.byaddr: \\\n'> <'\t\t\t("ipNetworkNumber=%s,*", rf_ipkey)=dn, \\\n'> <'\t\t\tmask=ipNetmaskNumber, \\\n'> <'\t\t\trf_comment=description\n'> <'\n'> <'# networks.\n'> <'nisLDAPfieldFromAttribute networks.byname: \\\n'> <'\t\t\t(rf_key)=(cn)\n'> <'nisLDAPfieldFromAttribute networks.byaddr: \\\n'> <'\t\t\t("ipNetworkNumber=%s,*", rf_key)=dn\n'> <'nisLDAPfieldFromAttribute networks: \\\n'> <'\t\t\tname=cn, \\\n'> <'\t\t\taliases=("%s ", (cn) - yp:name, " "), \\\n'> <'\t\t\tnumber=ipNetworkNumber, \\\n'> <'\t\t\trf_comment=description\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP='> name:_MAP) op: assign_op.Equal rhs: {<passwd.adjunct.byname>} spids: [17927] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<present>} {($ Id.VSub_DollarName _MAP)} {($ Id.VSub_DollarName ALL_DMN_DEF_MAPLIST)} ) ] negated: T stderr_indices: [] ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'# passwd\n'> <'nisLDAPfieldFromAttribute passwd.byname: \\\n'> <'\t\t\trf_key=uid\n'> <'nisLDAPfieldFromAttribute passwd.byuid: \\\n'> <'\t\t\trf_key=uidNumber\n'> <'nisLDAPfieldFromAttribute passwd: \\\n'> <'\t\t\tname=uid, \\\n'> <'\t\t\tuid=uidNumber, \\\n'> <'\t\t\t("{crypt}%s", passwd)=userPassword, \\\n'> <'\t\t\tgid=gidNumber, \\\n'> <'\t\t\tgecos=gecos, \\\n'> <'\t\t\thome=homeDirectory, \\\n'> <'\t\t\tshell=loginShell \n'> <'\n'> <'#\n'> <'# If you are using passwd.adjunct, comment the passwd section above\n'> <'# and uncomment the following passwd and passwd.adjunct sections\n'> <'#\t\t\t\n'> <'# passwd\n'> <'#nisLDAPfieldFromAttribute passwd.byname: \\\n'> <'#\t\t\trf_key=uid\n'> <'#nisLDAPfieldFromAttribute passwd.byuid: \\\n'> <'#\t\t\trf_key=uidNumber\n'> <'#nisLDAPfieldFromAttribute passwd: \\\n'> <'#\t\t\tname=uid, \\\n'> <'#\t\t\tuid=uidNumber, \\\n'> <'#\t\t\tpasswd=("##%s", uid), \\\n'> <'#\t\t\tgid=gidNumber, \\\n'> <'#\t\t\tgecos=gecos, \\\n'> <'#\t\t\thome=homeDirectory, \\\n'> <'#\t\t\tshell=loginShell\n'> <'\n'> <'# passwd.adjunct\n'> <'#nisLDAPfieldFromAttribute passwd.adjunct.byname: \\\n'> <'#\t\t\trf_key=uid, \\\n'> <'#\t\t\tname=uid, \\\n'> <'#\t\t\t("{crypt}%s", passwd)=userPassword\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [17931 17941] ) ] else_action: [ (C {<find_domains>} {($ Id.VSub_DollarName _MAP)} {<DEF_MAPS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName PRESENT_COUNT)} {<-eq>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [ {<echo>} { (SQ <'# passwd\n'> <'#nisLDAPfieldFromAttribute passwd.byname: \\\n'> <'#\t\t\trf_key=uid\n'> <'#nisLDAPfieldFromAttribute passwd.byuid: \\\n'> <'#\t\t\trf_key=uidNumber\n'> <'#nisLDAPfieldFromAttribute passwd: \\\n'> <'#\t\t\tname=uid, \\\n'> <'#\t\t\tuid=uidNumber, \\\n'> <'#\t\t\t("{crypt}%s", passwd)=userPassword, \\\n'> <'#\t\t\tgid=gidNumber, \\\n'> <'#\t\t\tgecos=gecos, \\\n'> <'#\t\t\thome=homeDirectory, \\\n'> <'#\t\t\tshell=loginShell \n'> <'\n'> <'#\n'> <'# If you are not using passwd.adjunct, uncomment the passwd section\n'> < '# above and comment the following passwd and passwd.adjunct sections\n' > <'#\t\t\t\n'> <'# passwd\n'> <'nisLDAPfieldFromAttribute passwd.byname: \\\n'> <'\t\t\trf_key=uid\n'> <'nisLDAPfieldFromAttribute passwd.byuid: \\\n'> <'\t\t\trf_key=uidNumber\n'> <'nisLDAPfieldFromAttribute passwd: \\\n'> <'\t\t\tname=uid, \\\n'> <'\t\t\tuid=uidNumber, \\\n'> <'\t\t\tpasswd=("##%s", uid), \\\n'> <'\t\t\tgid=gidNumber, \\\n'> <'\t\t\tgecos=gecos, \\\n'> <'\t\t\thome=homeDirectory, \\\n'> <'\t\t\tshell=loginShell\n'> <'\n'> <'#\n'> <'# passwd.adjunct Must follow passwd\n'> <'#\n'> <'nisLDAPfieldFromAttribute passwd.adjunct.byname: \\\n'> <'\t\t\trf_key=uid, \\\n'> <'\t\t\tname=uid, \\\n'> <'\t\t\t("{crypt}%s", passwd)=userPassword\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [18013 18026] ) ] else_action: [ (command.Simple words: [{<echo>} {(DQ <'# passwd'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPfieldFromAttribute passwd.byname,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\trf_key=uid\n'> <'nisLDAPfieldFromAttribute passwd.byuid,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\trf_key=uidNumber\n'> <'nisLDAPfieldFromAttribute passwd,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tname=uid, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tuid=uidNumber, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tpasswd=('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'##%s'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <', uid), '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\tgid=gidNumber, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tgecos=gecos, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\thome=homeDirectory, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tshell=loginShell\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) (command.Simple words: [ {<echo>} { (SQ <'\n'> <'nisLDAPfieldFromAttribute passwd.byname: \\\n'> <'\t\t\trf_key=uid\n'> <'nisLDAPfieldFromAttribute passwd.byuid: \\\n'> <'\t\t\trf_key=uidNumber\n'> <'nisLDAPfieldFromAttribute passwd: \\\n'> <'\t\t\tname=uid, \\\n'> <'\t\t\tuid=uidNumber, \\\n'> <'\t\t\t("{crypt}%s", passwd)=userPassword, \\\n'> <'\t\t\tgid=gidNumber, \\\n'> <'\t\t\tgecos=gecos, \\\n'> <'\t\t\thome=homeDirectory, \\\n'> <'\t\t\tshell=loginShell \n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'#\n'> <'# passwd.adjunct Must follow passwd\n'> <'# '>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) (command.ForEach iter_names: [_DMN] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PRESENT_IN_DOMAINS)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'nisLDAPfieldFromAttribute passwd.adjunct.byname,'> (${ Id.VSub_Name _DMN) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\trf_key=uid, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'\t\t\tname=uid, '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'\n'> <'\t\t\t('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'{crypt}%s'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <', passwd)=userPassword\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.Simple words: [ {<echo>} { (SQ <'\n'> < '# This map is never created but yppasswd uses the mapping to extract password\n' > <'# ageing information from the DIT.\t\n'> <'nisLDAPfieldFromAttribute ageing.byname: \\\n'> <'\t\t\trf_key=uid, \\\n'> <'\t\t\tname=uid, \\\n'> <'\t\t\tlastchg=shadowLastChange, \\\n'> <'\t\t\tmin=shadowMin, \\\n'> <'\t\t\tmax=shadowMax, \\\n'> <'\t\t\twarn=shadowWarning, \\\n'> <'\t\t\tinactive=shadowInactive, \\\n'> <'\t\t\texpire=shadowExpire, \\\n'> <'\t\t\tflag=shadowFlag\n'> <'\n'> <'# printers.conf.byname\n'> <'nisLDAPfieldFromAttribute printers.conf.byname: \\\n'> <'\t\t\trf_key=printer-uri, \\\n'> <'\t\t\tnames=("%s|", (printer-aliases), "|"), \\\n'> <'\t\t\tbsdaddr=("bsdaddr=%s", sun-printer-bsdaddr), \\\n'> <'\t\t\tkvps=("%s:", (sun-printer-kvp) - yp:bsdaddr), \\\n'> <'\t\t\tvalues=("%s:%s", yp:bsdaddr, yp:kvps), \\\n'> <'\t\t\tvalues=("%s:", yp:bsdaddr), \\\n'> <'\t\t\tvalues=yp:kvps, \\\n'> <' rf_comment=description\n'> <'\n'> <'# prof_attr\n'> <'nisLDAPfieldFromAttribute prof_attr: \\\n'> <'\t\t\trf_key=cn, \\\n'> <'\t\t\tname=cn, \\\n'> <'\t\t\tres1=SolarisAttrReserved1, \\\n'> <'\t\t\tres2=SolarisAttrReserved2, \\\n'> <'\t\t\tdesc=SolarisAttrLongDesc, \\\n'> <'\t\t\tattrs=SolarisAttrKeyValue\n'> <'\n'> <'# project\n'> <'nisLDAPfieldFromAttribute project.byname: \\\n'> <'\t\t\trf_key=SolarisProjectName\n'> <'nisLDAPfieldFromAttribute project.byprojid: \\\n'> <'\t\t\trf_key=SolarisProjectID\n'> <'nisLDAPfieldFromAttribute project: \\\n'> <'\t\t\tname=SolarisProjectName, \\\n'> <'\t\t\tprojID=SolarisProjectID, \\\n'> <'\t\t\tcomment=description, \\\n'> <'\t\t\tusers=("%s,", (memberUid), ","), \\\n'> <'\t\t\tgroups=("%s,", (memberGid), ","), \\\n'> <'\t\t\tattrs=("%s;", (SolarisProjectAttr), ";")\n'> <'\n'> <'# protocols\n'> <'nisLDAPfieldFromAttribute protocols.byname: \\\n'> <'\t\t\t("cn=%s,*", rf_key)=dn, \\\n'> <'\t\t\t(rf_key)=(cn)\n'> <'nisLDAPfieldFromAttribute protocols.bynumber: \\\n'> <' rf_key=ipProtocolNumber, \\\n'> <' rf_comment=description\n'> <'nisLDAPfieldFromAttribute protocols: \\\n'> <'\t\t\t("cn=%s,*", name)=dn, \\\n'> <' number=ipProtocolNumber, \\\n'> <' aliases=("%s ", (cn) - yp:name, " ")\n'> <'\n'> <'# rpc.bynumber\n'> <'nisLDAPfieldFromAttribute rpc.bynumber: \\\n'> <'\t\t\trf_key=oncRpcNumber, \\\n'> <'\t\t\tnumber=oncRpcNumber, \\\n'> <'\t\t\t("cn=%s,*", name)=dn, \\\n'> <' aliases=("%s ", (cn) - yp:name, " "), \\\n'> <'\t\t\trf_comment=description\n'> <'\n'> <'# services\n'> <'nisLDAPfieldFromAttribute services.byname: \\\n'> <'\t\t\trf_key = ("%s/%s", ipServicePort, ipServiceProtocol)\n'> <'nisLDAPfieldFromAttribute services.byservicename: \\\n'> <'\t\t\t(rf_key)=("%s/%s", cn, ipServiceProtocol), \\\n'> <'\t\t\t(rf_key)=(cn)\n'> <'nisLDAPfieldFromAttribute services: \\\n'> <'\t\t\t("cn=%s+ipServiceProtocol=*", name)=dn, \\\n'> <' \t\t\tprotocol=ipServiceProtocol, \\\n'> <' \t\t\tport=ipServicePort, \\\n'> <' aliases=("%s ", (cn) - yp:name, " "), \\\n'> <' rf_comment=description\n'> <'\n'> <'# timezone.byname\n'> <'nisLDAPfieldFromAttribute timezone.byname: \\\n'> <'\t\t\trf_key=cn, \\\n'> <'\t\t\thostName=cn, \\\n'> <'\t\t\tzoneName=nisplusTimeZone, \\\n'> <'\t\t\trf_comment=description\n'> <'\n'> <'# user_attr\n'> <'nisLDAPfieldFromAttribute user_attr: \\\n'> <'\t\t\t("uid=%s,*", rf_key)=dn, \\\n'> <'\t\t\t("uid=%s,*", user)=dn, \\\n'> <'\t\t\tqualifier=SolarisUserAttr, \\\n'> <'\t\t\tres1=SolarisUserReserved1, \\\n'> <'\t\t\tres2=SolarisUserReserved2, \\\n'> <'\t\t\tattrs=SolarisAttrKeyValue\n'> <'\n'> <'# publickey.byname\n'> <'nisLDAPfieldFromAttribute keys.host: \\\n'> <'\t\t\t("cn=%s+ipHostNumber=*", cname)=dn, \\\n'> <'\t\t\trf_key=("unix.%s@%s", yp:cname, yp:rf_domain), \\\n'> <'\t\t\tpublicKey=nisPublicKey, \\\n'> <'\t\t\tsecretKey=nisSecretKey\n'> <'\n'> <'nisLDAPfieldFromAttribute keys.pass: \\\n'> <'\t\t\trf_key=("unix.%s@%s", uidNumber, yp:rf_domain), \\\n'> <'\t\t\tpublicKey=nisPublicKey, \\\n'> <'\t\t\tsecretKey=nisSecretKey\n'> <'\n'> <'nisLDAPfieldFromAttribute keys.nobody: \\\n'> <'\t\t\trf_key=uid, \\\n'> <'\t\t\tpublicKey=nisPublicKey, \\\n'> <'\t\t\tsecretKey=nisSecretKey\n'> <'\n'> <'# ypservers. This derived from IPlanet implementation not RFC.\n'> <'nisLDAPfieldFromAttribute ypservers: \\\n'> <'\t\t\trf_key=cn\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: list_auto_and_custom_nisLDAPfieldFromAttribute body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_AUTO_CUST_MAPS> var_name: ALL_DMN_AUTO_CUST_MAPS prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'# Non-default custom auto maps (auto.*)'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] spids: [18450 18469] ) ] else_action: [] redirects: [] ) (command.ForEach iter_names: [_MAP] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALL_DMN_AUTO_CUST_MAPS> var_name: ALL_DMN_AUTO_CUST_MAPS bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'# '> (${ Id.VSub_Name _MAP) <'\n'> <'nisLDAPfieldFromAttribute '> (${ Id.VSub_Name _MAP) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <' rf_key=automountKey, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <' value=automountInformation\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) (C {<ask_user_to_update_the_custom_map_entries_too>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_nisLDAPfieldFromAttribute body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<CUST_CMT_NEEDED>} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [ {<echo>} { (SQ <'\n'> <'# nisLDAPfieldFromAttribute : It specifies how a NIS entries\n'> <'# field values are derived from LDAP attribute values. \n'> <'# \n'> <'# The format of nisLDAPfieldFromAttribute is :\n'> <'# mapName ":" fieldattrspec *("," fieldattrspec)\n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] ) (C {<list_default_nisLDAPfieldFromAttribute>}) (C {<list_auto_and_custom_nisLDAPfieldFromAttribute>}) (command.Simple words: [ {<echo>} { (DQ <'\n'> <'#\n'> < '#------------------------------------------------------------------------------\n' > <'#\t\t\t \n'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName MAP_FILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_mapping_file body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<create_n2l_domain_list>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName N2L_DMN_CNT)} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'There are no domains to serve. No mapping file generated.'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [18641 18654] ) ] else_action: [] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans>} {(DQ <'Enter the mapping file name (h=help):'>)} {(DQ (${ Id.VSub_Name MAP_FILE))} ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName ANS))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'>} {<help>} {<Help>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')} ] action: [(C {<display_msg>} {<new_mapping_file_name_help>})] spids: [18705 18720 18726 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [18729 18731 18735 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAP_FILE='> name:MAP_FILE) op: assign_op.Equal rhs: {(${ Id.VSub_Name ANS)} spids: [18743] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<MAP_FILE>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName MAP_FILE)}) ] ) (C {<check_back_mapping_file>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_MAP_FILE='> name:_MAP_FILE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName MAP_FILE)} spids: [18789] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAP_FILE='> name:MAP_FILE) op: assign_op.Equal rhs: {(${ Id.VSub_Name TMPDIR) <'/'> (${ Id.VSub_Name TMPMAP) <.> ($ Id.VSub_Dollar '$')} spids: [18792] ) ] redirects: [] ) (C {<echo>} { (DQ <'Generating mapping file temporarily as '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name MAP_FILE) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } ) (C {<put_mapping_file_copyright_info>}) (C {<create_map_lists>}) (C {<get_nisLDAPdomainContext>}) (C {<get_nisLDAPyppasswddDomains>}) (C {<create_nisLDAPdatabaseIdMapping>}) (C {<create_nisLDAPcommentChar>}) (C {<create_nisLDAPmapFlags>}) (C {<create_nisLDAPentryTtl>}) (C {<create_nisLDAPnameFields>}) (C {<create_split_field_and_repeatedfield_seperators>}) (C {<create_nisLDAPobjectDN>}) (C {<create_nisLDAPattributeFromField>}) (C {<create_nisLDAPfieldFromAttribute>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR_TO_CREATE='> name:DIR_TO_CREATE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<dirname>} {(${ Id.VSub_Name _MAP_FILE)}) right: <Id.Backtick_Right '`'> ) } spids: [18910] ) ] redirects: [] ) (C {<mkdir>} {<-p>} {(${ Id.VSub_Name DIR_TO_CREATE)}) (C {<echo>} { (DQ <'Moving output from temporary file ('> ($ Id.VSub_DollarName MAP_FILE) <') to actual file ('> ($ Id.VSub_DollarName _MAP_FILE) <')'> ) } ) (C {<mv>} {($ Id.VSub_DollarName MAP_FILE)} {($ Id.VSub_DollarName _MAP_FILE)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAP_FILE='> name:MAP_FILE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName _MAP_FILE)} spids: [18950] ) ] redirects: [] ) (C {<echo>} {(DQ <'Finished creation of mapping file ( '> ($ Id.VSub_DollarName MAP_FILE) <' )'>)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: process_config_file body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName CONFIG_FILE_SPECIFIED)} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<display_msg>} {<no_config_file_name_specified>}) (C {<get_confirm_nodef>} {(DQ <'Do you want to create the config file (y/n) ?'>)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (C {<get_ans>} {(DQ <'Enter the config file name (h=help):'>)} {(DQ (${ Id.VSub_Name CONFIG_FILE))} ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName ANS))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'>} {<help>} {<Help>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\?'> ch: '?' ) } ] action: [(C {<display_msg>} {<new_config_file_name_help>})] spids: [19069 19084 19090 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [19093 19095 19099 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONFIG_FILE='> name: CONFIG_FILE ) op: assign_op.Equal rhs: {(${ Id.VSub_Name ANS)} spids: [19109] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<CONFIG_FILE>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName CONFIG_FILE)}) ] ) ] spids: [18985 18998] ) ] else_action: [] redirects: [] ) (C {<check_back_config_file>}) (C {<create_config_file>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: process_mapping_file body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName MAPPING_FILE_SPECIFIED)} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<display_msg>} {<no_mapping_file_name_specified>}) (C {<get_confirm_nodef>} {(DQ <'Do you want to create the mapping file (y/n) ?'>)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) ] spids: [19171 19184] ) ] else_action: [] redirects: [] ) (C {<create_mapping_file>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROG='> name:PROG) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_Number 0)}) right: <Id.Backtick_Right '`'> ) } spids: [19241] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ABS_PROG='> name:ABS_PROG) op: assign_op.Equal rhs: {($ Id.VSub_Number 0)} spids: [19253] ) ] redirects: [] ) (C {<is_root_user>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'ERROR : Only root can run '> ($ Id.VSub_DollarName PROG))}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [19265 19278] ) ] else_action: [] redirects: [] ) (C {<init>}) (C {<parse_arg>} {($ Id.VSub_Star '*')}) (C {<process_config_file>}) (C {<process_mapping_file>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DEBUG)} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>}) (C {<cleanup>}) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )