xref: /aosp_15_r20/external/google-cloud-java/owl-bot-postprocessor/synthtool/tmp.py (revision 55e87721aa1bc457b326496a7ca40f3ea1a63287)
1*55e87721SMatt Gilbride# Copyright 2018 Google LLC
2*55e87721SMatt Gilbride#
3*55e87721SMatt Gilbride# Licensed under the Apache License, Version 2.0 (the "License");
4*55e87721SMatt Gilbride# you may not use this file except in compliance with the License.
5*55e87721SMatt Gilbride# You may obtain a copy of the License at
6*55e87721SMatt Gilbride#
7*55e87721SMatt Gilbride#     https://www.apache.org/licenses/LICENSE-2.0
8*55e87721SMatt Gilbride#
9*55e87721SMatt Gilbride# Unless required by applicable law or agreed to in writing, software
10*55e87721SMatt Gilbride# distributed under the License is distributed on an "AS IS" BASIS,
11*55e87721SMatt Gilbride# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*55e87721SMatt Gilbride# See the License for the specific language governing permissions and
13*55e87721SMatt Gilbride# limitations under the License.
14*55e87721SMatt Gilbride
15*55e87721SMatt Gilbrideimport atexit
16*55e87721SMatt Gilbridefrom pathlib import Path
17*55e87721SMatt Gilbrideimport shutil
18*55e87721SMatt Gilbrideimport tempfile
19*55e87721SMatt Gilbridefrom typing import List
20*55e87721SMatt Gilbride
21*55e87721SMatt Gilbride_tempdirs: List[str] = []
22*55e87721SMatt Gilbride
23*55e87721SMatt Gilbride
24*55e87721SMatt Gilbridedef tmpdir() -> Path:
25*55e87721SMatt Gilbride    path = tempfile.mkdtemp()
26*55e87721SMatt Gilbride    _tempdirs.append(path)
27*55e87721SMatt Gilbride    return Path(path)
28*55e87721SMatt Gilbride
29*55e87721SMatt Gilbride
30*55e87721SMatt Gilbridedef cleanup():
31*55e87721SMatt Gilbride    for path in _tempdirs:
32*55e87721SMatt Gilbride        shutil.rmtree(str(path))
33*55e87721SMatt Gilbride
34*55e87721SMatt Gilbride
35*55e87721SMatt Gilbrideatexit.register(cleanup)
36