|
@@ -0,0 +1,45 @@
|
|
|
|
|
+#! /usr/bin/env python
|
|
|
|
|
+
|
|
|
|
|
+import os
|
|
|
|
|
+
|
|
|
|
|
+# Configuration
|
|
|
|
|
+files = [
|
|
|
|
|
+ 'vimrc',
|
|
|
|
|
+ 'vim/UltiSnips',
|
|
|
|
|
+ 'vim/after/ftplugin'
|
|
|
|
|
+ 'nvimrc',
|
|
|
|
|
+ 'nvim',
|
|
|
|
|
+ 'zshrc',
|
|
|
|
|
+ 'zsh_local_example',
|
|
|
|
|
+ 'ctags',
|
|
|
|
|
+]
|
|
|
|
|
+backup = False
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def link_to_home(filename, target_directory='~', hidden=True):
|
|
|
|
|
+ """ Links filename (could be directory) into users home at '~'.
|
|
|
|
|
+ If the file exists, it is backed up first to a file named '*.bak'.
|
|
|
|
|
+ """
|
|
|
|
|
+ source = os.path.join(os.path.dirname(os.path.abspath(__file__)), filename)
|
|
|
|
|
+ target = os.path.expanduser(
|
|
|
|
|
+ os.path.join(target_directory, ('.' if hidden else '') + filename)
|
|
|
|
|
+ )
|
|
|
|
|
+ if os.path.exists(target):
|
|
|
|
|
+ print('{} exists'.format(target))
|
|
|
|
|
+ if backup:
|
|
|
|
|
+ os.rename(target, target + '.bak')
|
|
|
|
|
+ elif os.path.islink(target):
|
|
|
|
|
+ 'target is link'
|
|
|
|
|
+ os.unlink(target)
|
|
|
|
|
+ else:
|
|
|
|
|
+ os.remove(target)
|
|
|
|
|
+ # TODO: Check whether target is composed of directories
|
|
|
|
|
+ # (os.path.commonprefix)
|
|
|
|
|
+ #
|
|
|
|
|
+ # elif os.path.isdir(source):
|
|
|
|
|
+ # os.mkdir(source)
|
|
|
|
|
+ os.symlink(source, target)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+for f in files:
|
|
|
|
|
+ link_to_home(f, target_directory='~/test/')
|