X-Git-Url: https://us-delaporte.pagekite.me/gitweb/dotfiles.git/blobdiff_plain/f286cb3a5cd54e55e4dc735e5164db6890c27b86..11c13070faed2a9d6645de4e5209a34801d8768c:/invoke/setup-linux/tasks.py diff --git a/invoke/setup-linux/tasks.py b/invoke/setup-linux/tasks.py index 779ed9b..1e20b05 100644 --- a/invoke/setup-linux/tasks.py +++ b/invoke/setup-linux/tasks.py @@ -1,5 +1,125 @@ from invoke import task +from datetime import datetime as dt +import os + +HOME = os.path.expanduser('~') +TODAY = dt.now().strftime('%Y.%m.%d') + + @task() def defaults(c): c.run('update-alternatives --config gnome-www-browser') + +DOTFILES=f'{HOME}/dotfiles' + +@task +def setup_vi(c): + c.run('sudo apt-get install vim -y') + c.run(f'ln -s {DOTFILES}/files/vimrc {HOME}/.vimrc') + c.run(f'ls -al {HOME} | grep vimrc') + c.run(f'mkdir -p {HOME}/.swp') + +@task +def debug(c): + pass + +@task +def install_librewolf(c): + c.run(f'$HOME/dotfiles/install/librewolf.sh') + +@task +def install_git(c): + c.run('sudo apt-get install git -y') + +@task(install_librewolf, setup_vi, install_git) +def bare_minimum(c): + pass + +@task +def ssh_key(c): + # c.run(f'ssh-keygen') + c.run(f'librewolf https://codeberg.org/user/settings/keys', asynchronous=True) + c.run(f'cat $HOME/.ssh/*.pub') + +@task +def screen(c): + c.run(f'sudo apt-get install screen -y') + c.run(f'$HOME/dotfiles/setup/screen.sh') + +@task +def list_ports(c): + c.run('sudo netstat -tunlp') + +@task +def link_to_home(c, path, add_dot=False): + filename = os.path.basename(path) + if(add_dot): + filename = f'.{filename}' + + if(os.path.exists(f'{HOME}/{filename}')): + print(f'WARNING: {HOME}/{filename} exists.') + else: + c.run(f'ln -s {HOME}/dotfiles/{path} {HOME}/{filename}') + c.run(f'ls -la {HOME} | grep {filename}') + + +@task +def link_bashrc(c): + c.run(f'mv {HOME}/.bashrc {HOME}/bashrc_bak_{TODAY}') + link_to_home(c, 'files/pc/bashrc', add_dot=True) + + +@task +def link_all_for_invoke(c): + link_to_home(c, 'files/pc/tasks.py') + link_to_home(c, 'files/pc/bashrc', add_dot=True) + +@task +def vim_nerdtree(c): + add_vim_plugin(c, 'https://github.com/preservim/nerdtree.git', 'nerdtree') + +@task +def vim_markdown(c): + add_vim_plugin(c, 'https://github.com/preservim/vim-markdown.git', 'markdown') + +@task +def vim_airline(c): + add_vim_plugin(c, 'https://github.com/vim-airline/vim-airline.git', 'airline') + +@task +def vim_ollama(c): + add_vim_plugin(c, 'https://github.com/gergap/vim-ollama.git', 'vim-ollama') + +@task +def add_vim_plugin(c, git_path, folder): + c.run(f'mkdir -p {HOME}/.vim/pack/') + c.run(f'mkdir -p {HOME}/.vim/pack/vendor') + c.run(f'mkdir -p {HOME}/.vim/pack/vendor/opt') + c.run(f'git clone --depth 1 {git_path} {HOME}/.vim/pack/vendor/opt/{folder}') + c.run(f'ls -l {HOME}/.vim/pack/vendor/opt') + print(f"Use `packadd {folder}` in .vimrc to enable") + +@task +def ensure_env(c, env): + envs = f'{HOME}/envs' + path = f'{envs}/{env}' + if(not os.path.exists(envs)): + c.run(f'mkdir -p {envs}') + + if(not os.path.exists(path)): + c.run(f'python3 -m venv {path}') + reqs = f'{DOTFILES}/reqs/{env}.txt' + c.run(f'{path}/bin/pip install -r {reqs}') + + c.run(f'{path}/bin/pip freeze') + +@task +def env_ansible(c): + ensure_env(c, 'ansible') + + +@task +def env_jupyter(c): + ensure_env(c, 'jupyter') +