64 lines
1.8 KiB
Python
Executable File
64 lines
1.8 KiB
Python
Executable File
#! /usr/bin/env python3
|
|
|
|
import os
|
|
import shutil
|
|
from pathlib import Path
|
|
from docopt import docopt
|
|
from subprocess import check_call
|
|
|
|
HELPTEXT = """{progname}.
|
|
|
|
Installs symlinks, plugins, plugin managers, ...
|
|
|
|
Usage:
|
|
{progname} [-f] [-p <dir>] install all
|
|
{progname} [-f] [-p <dir>] install vim
|
|
{progname} (-h | --help)
|
|
|
|
Options:
|
|
-h --help Show this screen.
|
|
-f --force Force install if files look already installed
|
|
-p --path=<dir> Path to the dotfiles repo [default: .]
|
|
|
|
""".format(progname="install_files")
|
|
|
|
|
|
def install_vim(pdotfiles, force=False):
|
|
phome = Path(os.path.expanduser("~")).resolve()
|
|
phome_vimrc = phome / Path(".vimrc")
|
|
|
|
prelvimrc = Path("vim/vimrc")
|
|
|
|
try:
|
|
pdotfiles_vimrc = pdotfiles.resolve().relative_to(phome.resolve()) / prelvimrc
|
|
except ValueError:
|
|
pdotfiles_vimrc = pdotfiles / prelvimrc
|
|
|
|
if force and phome_vimrc.is_symlink():
|
|
phome_vimrc.unlink() # only kill symlinks
|
|
|
|
if phome_vimrc.exists():
|
|
print('.vimrc already there!')
|
|
else:
|
|
print("Symlinking {} to {}".format(phome_vimrc, pdotfiles_vimrc))
|
|
phome_vimrc.symlink_to(pdotfiles_vimrc)
|
|
|
|
# vundle
|
|
pvundle = phome / Path(".vim/bundle/Vundle.vim")
|
|
|
|
if not force and pvundle.exists():
|
|
print("Vundle already installed?")
|
|
else:
|
|
if force and pvundle.exists():
|
|
shutil.rmtree(pvundle.as_posix())
|
|
print("Install Vundle")
|
|
check_call(
|
|
["git", "clone", "https://github.com/VundleVim/Vundle.vim.git",
|
|
pvundle.as_posix()])
|
|
|
|
if __name__ == "__main__":
|
|
args = docopt(HELPTEXT, version='0.1')
|
|
if args["install"]:
|
|
if any((args["all"], args["vim"])):
|
|
install_vim(Path(args["--path"]).resolve(), args["--force"])
|