57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
"""
|
|
nginx deploy
|
|
"""
|
|
import subprocess
|
|
from pyinfra.operations import files, apt
|
|
|
|
|
|
def get_pass(filename: str) -> str:
|
|
"""Get the data from the password manager."""
|
|
try:
|
|
r = subprocess.run(["pass", "show", filename], capture_output=True)
|
|
except FileNotFoundError:
|
|
readme_url = "https://git.0x90.space/deltachat/secrets"
|
|
print(f"Please install pass and pull the latest version of our pass secrets from {readme_url}")
|
|
exit()
|
|
return r.stdout.decode('utf-8')
|
|
|
|
|
|
def deploy_tmux(home_dir="/root", escape_key="C-b", additional_config=[]):
|
|
apt.packages(
|
|
name="apt install tmux",
|
|
packages=["tmux"],
|
|
)
|
|
|
|
config = [
|
|
f"set-option -g prefix {escape_key}",
|
|
"set-option -g aggressive-resize on",
|
|
"set-option -g mouse on",
|
|
"set-option -g set-titles on",
|
|
"set-option -g set-titles-string '#I:#W - \"#H\"'",
|
|
"unbind-key C-b",
|
|
"bind-key ` send-prefix",
|
|
"bind-key a last-window",
|
|
"bind-key k kill-session",
|
|
]
|
|
for item in additional_config:
|
|
config.append(item)
|
|
for line in config:
|
|
files.line(
|
|
path=f"{home_dir}/.tmux.conf",
|
|
line=line,
|
|
)
|
|
|
|
dot_profile_add = """
|
|
# autostart tmux
|
|
if [ -t 0 -a -z "$TMUX" ]
|
|
then
|
|
test -z "$(tmux list-sessions)" && exec tmux new -s "$USER" || exec tmux new -A -s $(tty | tail -c +6) -t "$USER"
|
|
fi
|
|
"""
|
|
files.block(
|
|
name="connect to tmux session on login",
|
|
path=f"{home_dir}/.profile",
|
|
content=dot_profile_add,
|
|
try_prevent_shell_expansion=True,
|
|
)
|