Files
.dotfiles/setup/arch/install.py
T
2026-04-23 11:17:45 -05:00

69 lines
1.5 KiB
Python

import subprocess
import config
from pathlib import Path
def sym_link_dir():
confirm_link = input("Do you want to link home directories to external storage? (Y/n): ")
if confirm_link.lower() not in ("y", "yes", ""):
return
target_dir = Path(input("Specify the full path to the external storage: "))
if not target_dir.is_dir():
return
for subdir in config.DIRECTORIES:
dir_item = Path.home() / subdir
if not dir_item.is_symlink():
if dir_item.is_dir():
dir_item.rmdir()
dir_item.symlink_to(target_dir / subdir)
for subdir in config.DIRECTORIES_TO_REMOVE:
dir_item = Path.home() / subdir
if dir_item.is_dir() and not dir_item.is_symlink():
dir_item.rmdir()
def install_apps():
subprocess.run(
['sudo', 'pacman', '-S', '--noconfirm', *config.APPS],
check=True
)
subprocess.run(
["fish", "-c", "fisher install jorgebucaran/nvm.fish"],
check=True
)
subprocess.run(
["fish", "-c", "nvm install lts"],
check=True
)
def stow_dot_files():
dotfiles_root = Path.home() / '.dotfiles'
config_dir = Path.home() / '.config'
subprocess.run(
['stow', '-d', str(dotfiles_root), '-t', str(config_dir), '--adopt', 'config'],
check=True
)
subprocess.run(
['git', 'checkout', '--', 'config'],
cwd=dotfiles_root,
check=True,
)
if __name__ == "__main__":
sym_link_dir()
install_apps()
stow_dot_files()