Files
.dotfiles/setup/arch/install.py
Kendall Whitman 65e62cc887 fix condition
2026-02-03 19:13:41 -06:00

55 lines
1.4 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() == "y" or confirm_link.lower() == '':
target_dir = input("Specify the full path to the external storage: ")
def home_dir_item(item):
return Path(f"{Path.home()}/{item}")
for dir in config.DIRECTORIES:
HOME_DIR_PATH = home_dir_item(dir)
TARGET_SYMLINK_DIR = f"{target_dir}/{dir}"
HAS_HOME_DIR = HOME_DIR_PATH.is_dir()
IS_SYMLINK = HOME_DIR_PATH.is_symlink()
if HAS_HOME_DIR:
HOME_DIR_PATH.rmdir()
if not IS_SYMLINK:
HOME_DIR_PATH.symlink_to(TARGET_SYMLINK_DIR)
for dir in config.DIRECTORIES_TO_REMOVE:
if home_dir_item(dir).is_dir():
home_dir_item(dir).rmdir()
def install_apps():
for app in config.APPS:
subprocess.run(['sudo', 'pacman', '-S', f"{app}", '--noconfirm'])
subprocess.run([
"fish", "-c", "fisher install jorgebucaran/nvm.fish"
], check=True)
subprocess.run([
"fish", "-c", "nvm install lts"
], check=True)
def stow_dot_files():
for dotfile in config.DOTFILES:
subprocess.run(['stow', f"{dotfile}", '--adopt'])
subprocess.run(['git', 'checkout', '--', '.'])
sym_link_dir()
install_apps()
stow_dot_files()