Mini Shell
3
�
Ld�� � @ sr d Z ddlmZ ddlmZ ddlZddlZddlZddlZddl Z yddl
mZ W n ek
rt ddl
mZ Y nX ddlmZmZ ddlmZmZmZ ddlmZ dd lmZ dd
lmZ ddlmZmZmZmZm Z m!Z!m"Z" ddl#m$Z$ d
Z%dZ&dd� Z'dd� Z(dd� Z)dd� Z*dd� Z+G dd� de�Z,G dd� de�Z-G dd� de�Z.G dd � d e�Z/G d!d"� d"e0�Z1dS )#a+
Main kickstart file processing module.
This module exports several important classes:
Script - Representation of a single %pre, %pre-install, %post, or %traceback script.
Packages - Representation of the %packages section.
KickstartParser - The kickstart file parser state machine.
� )�print_function)�IteratorN)�
OrderedSet)� constants�version)�KickstartError�KickstartParseError�KickstartParseWarning)�KickstartObject)�load_to_str)�KSOptionParser)�PackageSection�PreScriptSection�PreInstallScriptSection�PostScriptSection�TracebackScriptSection�OnErrorScriptSection�NullSection)�_�endZcommandsc C s. d }d}d}t jr |jtj� �}�xyt| �}W n tk
rF P Y nX |dkrRP |d7 }d }|j� }|jd�s�t jr�|jtj� �}||7 }q$y|j d�d }W n t
td�| |d��Y nX yt|�}W n< t
k
�r
} zt
td�t|� |d��W Y d d }~X nX |d k r$||jtj� �7 }q$W |S ) Nr � � z %ksappend� zIllegal url for %%ksappend: %s)�linenoz"Unable to open %%ksappend file: %s)�sixZPY3�encode�sys�getdefaultencoding�next�
StopIteration�strip�
startswith�splitr r r r �str)�lineIter�lr �retvalZksurlZll�contents�e� r) �/usr/lib/python3.6/parser.py�_preprocessStateMachine<