from invoke import task

import os

HOME = os.path.expanduser('~')

@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_all_for_invoke(c):
    link_to_home(c, 'files/pc/tasks.py')
    link_to_home(c, 'files/pc/bashrc', add_dot=True)
