Skip to content

Instantly share code, notes, and snippets.

@footearth
Last active August 29, 2015 14:25
Show Gist options
  • Save footearth/fc160fba594b76612796 to your computer and use it in GitHub Desktop.
Save footearth/fc160fba594b76612796 to your computer and use it in GitHub Desktop.
Use_python_install_node_env
#!/usr/bin/env python
import envoy
import os
import shutil
_path_ = {
'home': os.environ['HOME'],
'script': os.path.split(os.path.realpath(__file__))[0]
}
isPrintCommander = True
# isPrintCommander = False
_source_ = {
'nvm': 'https://raw.githubusercontent.com/creationix/nvm/v0.24.0/install.sh',
'nvm-fish-wrapper': 'git://github.com/passcod/nvm-fish-wrapper.git'
}
node_version = '0.12.7'
pkgs = [
'pm2',
'http-server',
'coffee-script',
'bower',
'cson',
'harp',
'gitbook-cli',
'hexo-cli',
'npb-coffee',
'gulp',
'node-inspector'
]
def print_log (r):
print r.status_code
print r.std_out
print r.std_err
def add_line (line_str, file_path):
lines = []
indexs = []
with open(file_path, 'r+') as f:
lines = f.readlines()
for index, line in enumerate(lines):
if line_str in line:
indexs.append(index)
if len(indexs) is 0:
f.write(line_str)
f.closed
def run_commander (commander):
if isPrintCommander == True:
print commander
r = envoy.run(commander)
print_log(r)
def nvm_install():
commander = "curl {nvm_install_file} | bash"
commander = commander.format(
nvm_install_file = _source_['nvm']
)
run_commander(commander)
def nvm_config():
line_str = ". {path_home}/.nvm/nvm.sh"
line_str = line_str.format(
path_home = _path_['home']
)
zsh_rc = "{path_home}/.zshrc".format(
path_home = _path_['home']
)
add_line(line_str, zsh_rc)
def nvm_fish_wrapper_get():
nvm_wrapper_path = "{home}/.config/fish/nvm-wrapper"
nvm_wrapper_path = nvm_wrapper_path.format(home = _path_['home'])
# clean nvm_wrapper
if os.path.exists(nvm_wrapper_path):
shutil.rmtree(nvm_wrapper_path)
commander = "git clone {source_nvm_fish_wrapper} {nvm_wrapper_path}"
commander = commander.format(
source_nvm_fish_wrapper = _source_['nvm-fish-wrapper'],
nvm_wrapper_path = nvm_wrapper_path
)
run_commander(commander)
def nvm_support_fish():
line_str = ". {path_home}/.config/fish/nvm-wrapper/nvm.fish"
line_str = line_str.format(
path_home = _path_['home']
)
fish_config = "{path_home}/.config/fish/config.fish"
fish_config = fish_config.format(
path_home = _path_['home']
)
add_line(line_str, fish_config)
def node_install():
commanders = [
'nvm install {node_version}'.format(node_version = node_version),
'nvm alias 12 {node_version}'.format(node_version = node_version),
'nvm alias default 12',
'nvm use default'
]
for commander in commanders:
run_commander(
"fish -c '{commander}'".format(commander = commander)
)
def cnpm_install():
commander = 'npm install -g cnpm --registry=https://r.cnpmjs.org'
commander = "bash -lc '{commander}'".format(commander = commander)
run_commander(commander)
def pkgs_install_all():
pkg_names = ' '.join(pkgs)
commander = 'npm install -g {pkg_names}'.format(pkg_names = pkg_names)
commander = "bash -lc '{commander}'".format(commander = commander)
run_commander(commander)
def pkgs_install():
for pkg in pkgs:
commander = 'npm install -g {pkg}'.format(pkg = pkg)
commander = "bash -lc '{commander}'".format(commander = commander)
run_commander(commander)
nvm_install()
nvm_config()
nvm_fish_wrapper_get()
nvm_support_fish()
node_install()
pkgs_install()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment