kiwi-el8/kiwi/utils/temporary.py
Marcus Schäfer 59875a516d
Fixed LVM/btrfs volume based image builds
Due to the change on the temporary directory an error
in the volume manager classes for LVM and btrfs was
exposed. There was code which uses a sub-part of the
volume mount point directory which is a tempdir based
directory name. The sub-part was choosen by an index
based path split which worked for /tmp but no longer for
/var/tmp. With tempdir now being also a commandline
option this code has to become more robust.
2021-07-24 11:04:45 +02:00

48 lines
1.3 KiB
Python

# Copyright (c) 2021 SUSE Linux GmbH. All rights reserved.
#
# This file is part of kiwi.
#
# kiwi is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# kiwi is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with kiwi. If not, see <http://www.gnu.org/licenses/>
#
from typing import IO
from tempfile import (
NamedTemporaryFile,
TemporaryDirectory
)
# project
import kiwi.defaults as defaults
class Temporary:
"""
**Provides namespace to handle temporary files and directories**
"""
def __init__(
self, dir: str = defaults.TEMP_DIR, prefix: str = ''
):
self.prefix = prefix if prefix else 'kiwi_'
self.dir = dir
def new_file(self) -> IO[bytes]:
return NamedTemporaryFile(
dir=self.dir, prefix=self.prefix
)
def new_dir(self) -> TemporaryDirectory:
return TemporaryDirectory(
dir=self.dir, prefix=self.prefix
)