aboutsummaryrefslogtreecommitdiff
path: root/install.py
diff options
context:
space:
mode:
authorThomas Schneider <qsx@chaotikum.eu>2019-12-24 15:05:03 +0100
committerThomas Schneider <qsx@chaotikum.eu>2019-12-24 15:05:03 +0100
commit1fe54dcbf456893c6788b5351a84c4ece0336ec2 (patch)
treeab5b8703ec11a5bf5884fbf2d3a8824187ca7169 /install.py
parentf3e66345a3b1348a35c795d8768c6dbbcc09b8a3 (diff)
install.py: Refactor using pathlib
Diffstat (limited to 'install.py')
-rwxr-xr-xinstall.py27
1 files changed, 16 insertions, 11 deletions
diff --git a/install.py b/install.py
index bd58299..2ade691 100755
--- a/install.py
+++ b/install.py
@@ -2,24 +2,29 @@
import os
import sys
-from glob import glob
+from pathlib import Path
+
+here = Path(__file__).parent.resolve()
+home = Path.home().resolve()
-os.chdir(os.path.dirname(__file__))
exit = 0
-for f in glob('dot.*'):
- dst = os.path.expanduser(
- '~/' + f[3:].replace("--", "\ufffd").replace("-", "/").replace("\ufffd", "-"))
- src = os.path.join(os.getcwd(), f)
- src_rel = os.path.relpath(src, os.path.dirname(dst))
+for f in here.glob("dot.*"):
+ dst = home / Path(
+ f.name[3:].replace("--", "\ufffd").replace("-", "/").replace("\ufffd", "-")
+ )
+ try:
+ src = f.relative_to(dst.parent)
+ except ValueError:
+ src = os.path.relpath(str(f), str(dst.parent))
- os.makedirs(os.path.dirname(dst), exist_ok=True)
+ dst.parent.mkdir(parents=True, exist_ok=True)
try:
- os.symlink(src_rel, dst)
+ dst.symlink_to(src)
except FileExistsError:
- if not os.path.samefile(src, dst):
- print(dst + " exists and does not link do " + src)
+ if not (dst.parent / src).samefile(dst):
+ print("{} exists and does not link to {}".format(dst, src))
exit = 1
sys.exit(exit)