File: //lib/python3/dist-packages/DistUpgrade/__pycache__/DistUpgradeCache.cpython-38.pyc
U
٪zc�� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlmZm
Z
ddlmZ ddlmZ ddlmZ G dd� de�ZG d d
� d
e�ZG dd� de�Zd
d� Ze� \ZZG dd� de�ZG dd� de�ZG dd� de j�Ze dk�r�d dl!Z!ddl"m#Z# ddl$m$Z$ e%d� ee#d�e$� d�Z&e%e&�'� � e!�(� e&�)� e&�*� e&j+ e&�,dg� e%e&�-� � e&�.� dS )� N)�Popen�PIPE� )�gettext)�ngettext)�
inside_chrootc @ s e Zd ZdS )�CacheExceptionN��__name__�
__module__�__qualname__� r
r
�>/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeCache.pyr ( s r c @ s e Zd ZdS )�CacheExceptionLockingFailedNr r
r
r
r r , s r c @ s e Zd ZdS )�CacheExceptionDpkgInterruptedNr r
r
r
r r 0 s r c C s� d} d}t �� d }t�d| �D ]`}|d| krD|t j�|�7 }q"|�d�dks"|�d�dks"|�d�dkrrq"q"| t j�|�7 } q"| dkr�t�d� d } |dkr�t�d
� d}| d7 } d}|d
|kr�|d
}||7 }| |fS )zjestimate the amount of space used by the kernel and initramfs in /boot,
including a safety margin
r � z
/boot/*%s*z/boot/initrd.img-%sz
initrd.imgz.bakz.dpkg-z>estimate_kernel_initrd_size_in_boot() returned '0' for kernel?i z>estimate_kernel_initrd_size_in_boot() returned '0' for initrd?i @i g�������?)�os�uname�glob�path�getsize�find�logging�warning)ZkernelZinitrdZkver�fZ
initrd_bufferr
r
r �#estimate_kernel_initrd_size_in_boot4 s6 ���r c @ s e Zd ZdZdd� Zdd� ZdS )�FreeSpaceRequiredz� FreeSpaceRequired object:
This exposes:
- the total size required (size_total)
- the dir that requires the space (dir)
- the additional space that is needed (size_needed)
c C s || _ || _|| _d S �N)�
size_total�dir�size_needed)�selfr r r r
r
r �__init__` s zFreeSpaceRequired.__init__c C s d| j | j| jf S )Nz@FreeSpaceRequired Object: Dir: %s size_total: %s size_needed: %s)r r r �r! r
r
r �__str__d s zFreeSpaceRequired.__str__N)r
r r �__doc__r"