o
0i|! @ sF d Z ddlZddlmZ ddlZzddlZW n ey! dZY nw ddlmZ ddl m
Z
ddlmZ ddl
mZ zddlmZ W n eyM dZY nw zdd lmZ W n eya dZY nw d
d Zdd
Z d#ddZd$ddZedgdfedgdfedgdfedgdfedgdfeg dfdZdd Z d%d!d"ZdS )&zodistutils.archive_util
Utility functions for creating archive files (tarballs, zip files,
that sort of thing). N)warn)DistutilsExecError)spawn)mkpath)log)getpwnam)getgrnamc C L t du s| du r
dS zt | }W n ty d}Y nw |dur$|d S dS )z"Returns a gid, given a group name.N )r KeyErrornameresult r =/opt/alt/python310/lib64/python3.10/distutils/archive_util.py_get_gid r c C r )z"Returns an uid, given a user name.Nr
)r r r r r r _get_uid+ r r gzipc s2 dddddd}dddd d
}|dur|| vrtd| d
} |dkr-| ||d7 } ttj| |d ddl}
t d t
t fdd}|sp|
| d|| }z
|j
||d W | n| w |dkrtdt | || }
tjdkr|| |
g}n|d| g}t||d |
S | S )a= Create a (possibly compressed) tar file from all the files under
'base_dir'.
'compress' must be "gzip" (the default), "bzip2", "xz", "compress", or
None. ("compress" will be deprecated in Python 3.2)
'owner' and 'group' can be used to define an owner and a group for the
archive that is being built. If not provided, the current owner and group
will be used.
The output tar file will be named 'base_dir' + ".tar", possibly plus
the appropriate compression extension (".gz", ".bz2", ".xz" or ".Z").
Returns the output filename.
Zgzbz2xz )r bzip2r Ncompressz.gzz.bz2z.xzz.Z)r r r r NzKbad value for 'compress': must be None, 'gzip', 'bzip2', 'xz' or 'compress'z.tarr dry_runr zCreating tar archivec s, d ur
| _ | _d ur| _| _| S )N)gidZgnameuiduname)Ztarinfor groupownerr r r _set_uid_gida s z"make_tarball.