forked from colonelpanic/dotfiles
Get rid of tasks.sh Bump emacs.d for emacs jedi stuff
This commit is contained in:
56
tasks/__init__.py
Normal file
56
tasks/__init__.py
Normal file
@@ -0,0 +1,56 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
from invoke import Collection, ctask
|
||||
|
||||
from . import osx
|
||||
from . import linux
|
||||
from .util import DOTFILES_DIRECTORY, RESOURCES_DIRECTORY
|
||||
|
||||
|
||||
ns = Collection()
|
||||
ns.add_collection(osx)
|
||||
ns.add_collection(linux)
|
||||
|
||||
|
||||
@ctask(default=True)
|
||||
def setup(ctx):
|
||||
ctx.config['run']['pty'] = False
|
||||
ctx.config['run']['warn'] = True
|
||||
if 'darwin' in sys.platform:
|
||||
osx.all(ctx)
|
||||
else:
|
||||
linux.all(ctx)
|
||||
dotfiles(ctx, '')
|
||||
install_python_libraries(ctx)
|
||||
|
||||
|
||||
|
||||
@ctask
|
||||
def dotfiles(ctx, flags):
|
||||
ctx.run('hash dotfiles || sudo pip install dotfiles')
|
||||
return ctx.run('dotfiles -sR{1} {0}'.format(DOTFILES_DIRECTORY, flags))
|
||||
|
||||
|
||||
@ctask
|
||||
def install_python_libraries(ctx):
|
||||
ctx.run('sudo pip install -r {0}'.format(
|
||||
os.path.join(RESOURCES_DIRECTORY, 'requirements.txt')
|
||||
))
|
||||
|
||||
@ctask
|
||||
def install_npm_libraries(ctx):
|
||||
ctx.run('source {0}'.format(
|
||||
os.path.join(RESOURCES_DIRECTORY, 'npm.sh')
|
||||
))
|
||||
|
||||
|
||||
@ctask
|
||||
def vimstall(ctx):
|
||||
ctx.run('vim +BundleInstall! +q +q')
|
||||
|
||||
|
||||
ns.add_task(dotfiles)
|
||||
ns.add_task(setup)
|
||||
ns.add_task(install_python_libraries)
|
||||
ns.add_task(vimstall)
|
14
tasks/linux.py
Normal file
14
tasks/linux.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from invoke import ctask
|
||||
|
||||
|
||||
@ctask(default=True)
|
||||
def all(ctx):
|
||||
apt_get(ctx)
|
||||
|
||||
|
||||
linux_pacakges = ('zsh', 'tmux', 'emacs24-nox', 'nmap', 'scala', 'sbt')
|
||||
@ctask
|
||||
def apt_get(ctx):
|
||||
install_command = 'sudo apt-get -y install'
|
||||
for package in linux_pacakges:
|
||||
ctx.run('{0} {1}'.format(install_command, package), pty=False)
|
60
tasks/osx.py
Normal file
60
tasks/osx.py
Normal file
@@ -0,0 +1,60 @@
|
||||
import os
|
||||
|
||||
from invoke import ctask
|
||||
|
||||
from .util import RESOURCES_DIRECTORY, command_exists
|
||||
|
||||
|
||||
@ctask(default=True)
|
||||
def all(ctx):
|
||||
get_command_line_tools(ctx)
|
||||
get_brew(ctx)
|
||||
brew_install(ctx)
|
||||
brew_cask(ctx)
|
||||
osx_config(ctx)
|
||||
|
||||
|
||||
ESSENTIAL = (
|
||||
"emacs", "tmux", "python --with-brewed-openssl", "htop", "greadlink", "zsh", "make",
|
||||
"macvim --override-system-vim --custom-system-icons --with-features=huge "
|
||||
"--enable-rubyinterp --enable-pythoninterp --enable-perlinterp --enable-cscope"
|
||||
)
|
||||
BASICS=(
|
||||
"findutils", "coreutils", "binutils", "diffutils", "ed --default-names",
|
||||
"gawk", "gnu-indent --default-names", "gnu-sed --default-names",
|
||||
"gnu-tar --default-names", "gnu-which --default-names", "gnutls --default-names",
|
||||
"grep --default-names", "gzip", "watch", "wdiff --with-gettext", "wget --enable-iri"
|
||||
)
|
||||
SHOULD_INSTALL = (
|
||||
"nmap", "readline", "netcat", "reattach-to-user-namespace", "daemonize",
|
||||
"ngrep", "gist", "gawk", "pstree", "ack", "hub", "tig", "heroku", "scala",
|
||||
"sbt", "node", "npm"
|
||||
)
|
||||
MISC = ("file-formula", "less", "openssh --with-brewed-openssl",
|
||||
"perl518", "rsync", "svn", "unzip")
|
||||
|
||||
CASKS = ('alfred', 'caffeine', 'flux', 'google-chrome', 'iterm2', 'spotify', 'vlc',)
|
||||
@ctask
|
||||
def osx_config(ctx):
|
||||
ctx.run('source {0}; osx_config'.format(os.path.join(RESOURCES_DIRECTORY, 'osx.sh')))
|
||||
|
||||
@ctask
|
||||
def brew_cask(ctx):
|
||||
ctx.run('brew install caskroom/cask/brew-cask')
|
||||
for cask in CASKS:
|
||||
ctx.run('brew cask install {0}'.format(cask))
|
||||
|
||||
@ctask
|
||||
def get_brew(ctx):
|
||||
if not command_exists('brew'):
|
||||
ctx.run('ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"')
|
||||
|
||||
@ctask
|
||||
def brew_install(ctx):
|
||||
for package_name in ESSENTIAL + BASICS + SHOULD_INSTALL + MISC:
|
||||
ctx.run('brew install {0}'.format(package_name))
|
||||
|
||||
@ctask
|
||||
def get_command_line_tools(ctx):
|
||||
if not command_exists('gcc'):
|
||||
ctx.run('xcode-select --install')
|
12
tasks/util.py
Normal file
12
tasks/util.py
Normal file
@@ -0,0 +1,12 @@
|
||||
import os
|
||||
|
||||
from invoke import run
|
||||
|
||||
|
||||
REPO_DIRECTORY = os.path.dirname(os.path.dirname(__file__))
|
||||
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
|
Reference in New Issue
Block a user