36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
import errno
|
|
import os
|
|
|
|
from invoke import run
|
|
|
|
|
|
TASKS_DIRECTORY = os.path.dirname(__file__)
|
|
REPO_DIRECTORY = os.path.dirname(TASKS_DIRECTORY)
|
|
DOTFILES_DIRECTORY = os.path.join(REPO_DIRECTORY, 'dotfiles')
|
|
RESOURCES_DIRECTORY = os.path.join(REPO_DIRECTORY, 'resources')
|
|
|
|
|
|
def command_exists(command, run=run):
|
|
return run("hash {0}".format(command), warn=True, hide=True).exited == 0
|
|
|
|
|
|
def link_filenames(ctx, link_pairs, force=False):
|
|
for source, destination in link_pairs:
|
|
destination = os.path.expanduser(destination)
|
|
source = os.path.expanduser(source)
|
|
if force:
|
|
ctx.run("sudo rm -rf {0}".format(destination))
|
|
if os.path.exists(destination):
|
|
print("Skipping {0} because path already exists".format(destination))
|
|
else:
|
|
print("Linking {0} to {1}".format(destination, source))
|
|
ctx.run('ln -s {0} {1}'.format(source, destination))
|
|
|
|
|
|
def ensure_path_exists(path):
|
|
try:
|
|
os.makedirs(path)
|
|
except OSError as exception:
|
|
if exception.errno != errno.EEXIST:
|
|
raise
|