59 lines
1.3 KiB
Python
59 lines
1.3 KiB
Python
from pyinfra.operations import server, apt, npm, python
|
|
from pyinfra import host
|
|
from pyinfra.facts.files import Directory
|
|
from pyinfra.facts.server import Which
|
|
|
|
hasNode = host.get_fact(Which, 'node')
|
|
VERSION = host.data.VERSION
|
|
ALIAS = host.data.ALIAS
|
|
GLOBAL_PACKAGES = host.data.GLOBAL_PACKAGES
|
|
USER = host.data.USER
|
|
|
|
apt.packages(
|
|
name=f'Install nodejs tools',
|
|
no_recommends=True,
|
|
packages=[
|
|
'build-essential',
|
|
'libssl-dev',
|
|
'libtool',
|
|
'cmake',
|
|
'libcairo2-dev',
|
|
'libpango1.0-de',
|
|
'libpng-dev',
|
|
'libgif-dev',
|
|
'libjpeg-dev',
|
|
'libvips-dev',
|
|
'librsvg2-dev',
|
|
'libpixman-1-dev',
|
|
],
|
|
_sudo = True,
|
|
)
|
|
|
|
server.shell(
|
|
commands=[
|
|
"curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash",
|
|
"omf install nvm",
|
|
f"nvm install {VERSION}",
|
|
f"nvm alias {ALIAS} {VERSION}",
|
|
"set -gx NVM_DIR $HOME/.nvm",
|
|
],
|
|
_sudo=True,
|
|
_su_user=USER,
|
|
_use_su_login=True,
|
|
_shell_executable='/usr/bin/fish'
|
|
)
|
|
|
|
|
|
server.shell(
|
|
commands=[
|
|
"npm install -g pm2 yarn local-web-server node-gyp inquirer execa @dotenvx/dotenvx"
|
|
],
|
|
_sudo=True,
|
|
_su_user=USER,
|
|
_use_su_login=True,
|
|
_shell_executable='/usr/bin/fish'
|
|
|
|
)
|
|
|
|
|