dotfiles/mkSymlink.py

36 lines
974 B
Python
Raw Normal View History

2016-09-04 14:34:28 +02:00
#!/usr/bin/env python3
import os
import sys
BASE_DIRECTORY = 'files'
HOME_DIRECTORY = os.getenv("HOME")
def recurseInstall(path='/'):
def homepath(entry):
return HOME_DIRECTORY + path + entry.name
def gitpath(entry):
return BASE_DIRECTORY + path + entry.name
def link(entry):
os.symlink(os.getcwd()+'/'+gitpath(entry), homepath(entry))
for entry in os.scandir(BASE_DIRECTORY+path):
if os.path.exists(homepath(entry)):
# The file/directory already exists
if entry.is_dir(): # Directory: recurse on it
recurseInstall(path+entry.name+'/')
else: # File: backup it, symlink it
os.rename(homepath(entry), homepath(entry)+'.bck')
link(entry)
else:
link(entry)
if __name__ == '__main__':
if not HOME_DIRECTORY:
print("Couldn't find home directory.", file=sys.stderr)
sys.exit(1)
recurseInstall()