|
1 #!/usr/bin/env python3 |
|
2 # -*- coding: utf-8 -*- |
|
3 |
|
4 # Copyright (c) 2002 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
|
5 # |
|
6 |
|
7 """ |
|
8 pipcleanup |
|
9 |
|
10 Script to delete all leftovers of upgrading packages currently in use. These |
|
11 leftover directories are still located in the 'site-packages' directory and |
|
12 their names start with a '~' character. |
|
13 """ |
|
14 |
|
15 import glob |
|
16 import os |
|
17 import shutil |
|
18 import sys |
|
19 import sysconfig |
|
20 |
|
21 def main(): |
|
22 """ |
|
23 Function implementing the main logic. |
|
24 """ |
|
25 sitepackages = sysconfig.get_path("platlib") |
|
26 leftovers = glob.glob("~*",root_dir=sitepackages) |
|
27 for leftover in leftovers: |
|
28 directory = os.path.join(sitepackages, leftover) |
|
29 print(f"Removing '{directory}'.") |
|
30 shutil.rmtree(directory, ignore_errors=True) |
|
31 |
|
32 # check again for leftovers and report via exit code |
|
33 leftovers = glob.glob("~*",root_dir=sitepackages) |
|
34 sys.exit(1 if bool(leftovers) else 0) |
|
35 |
|
36 if __name__ == "__main__": |
|
37 main() |