Mini Shell
3
{)c[% � @ s� d dl mZ d dlZddlmZ d dlZejd�ZdZdd� Z d d
� Z
dd� Zd
d� Zdd� Z
dd� Zdd� Zdd� Zd-dd�Zd.dd�Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� Zd)d*� Zd+d,� ZdS )/� )�absolute_importN� )�log_exception_infoZblivetz /sys/class/dmi/id/chassis_vendorc C s� t � s
dS ddddddddddd d
ddddddd
dd�} d}d}tdd��B}x:|D ]2}d|krn|jd�d }qRd|krR|jd�d }qRW W dQ R X x@||fD ]4}|dkr�q�x$| j� D ]}|d |kr�|d S q�W q�W tjd||� dS )zP
:return: The PPC machine type, or None if not PPC.
:rtype: string
N�PMac�pSeries�Pegasos�Efika�iSeries�PRePZAPUS�GeminiZANS�BRIQ�Teron�PS3�PowerNV)ZMacZBookZCHRPzCHRP IBMr r r r r
ZAmigar ZShinerr r
ZAmigaOneZMaple�CellZMomentumr r z
/proc/cpuinfo�r�machine�:r �platformr z-Unknown PowerPC machine type: %s platform: %s)�is_ppc�open�split�items�log�warning)Zppc_typer r �f�line�part�_type� r �/usr/lib/python3.6/arch.py�get_ppc_machine- sL
r! c
C sh t � s
dS t� dkrdS tdd��2} x*| D ]"}d|kr*|jd�d }|j� S q*W W dQ R X tjd� dS ) zc
:return: The powermac machine type, or None if not PPC or a powermac.
:rtype: string
Nr z
/proc/cpuinfor r r r zNo Power Mac machine id)r r! r r �stripr r )r r r r r r �get_ppc_mac_idd s
r# c
C s� dddg} t � sdS t� dkr"dS d}tdd��,}x$|D ]}d|kr8|jd �d
}P q8W W dQ R X |dkrxtjd� dS x| D ]}||kr~|S q~W tjd|� dS )
z\
:return: The PPC generation, or None if not PPC or a powermac.
:rtype: string
ZOldWorld�NewWorldZNuBusNr z
/proc/cpuinfor zpmac-generationr r zUnable to find pmac-generationz Unknown Power Mac generation: %s)r r! r r r r )Zpmac_gen�genr r r r r r �get_ppc_mac_geny s&