Files
os_setup/install.py
2025-10-17 21:56:39 +00:00

62 lines
1.7 KiB
Python

import os
import platform
rhel_packages = [
'epel-release'
]
linux_packages = [
'git',
'unzip',
'neovim',
'zsh'
]
linux_after_command = {
'zsh': 'sudo chsh -s $(which zsh) $(whoami) && curl -s https://ohmyposh.dev/install.sh | sudo bash -s -- -d /usr/local/bin && echo \'eval "$(oh-my-posh init zsh)"\' >> .zshrc'
}
os_type = platform.uname().system.lower()
is_linux = os_type == "linux"
is_macos = os_type == "darwin"
is_windows = os_type == "windows"
is_debian = is_linux and os.system('apt --version > /dev/null 2>&1') >> 8 == 0
is_rhel = is_linux and os.system('dnf --version > /dev/null 2>&1') >> 8 == 0
def update_system():
if is_debian:
os.system('sudo apt-get update && sudo apt-get upgrade -y')
elif is_rhel:
os.system('sudo dnf upgrade -y')
else:
print(f"Update not supported for: {os_type}")
exit(1)
def install(package):
if is_debian:
os.system(f'sudo apt-get install {p} -y')
elif is_rhel:
os.system(f'sudo dnf install {p} -y')
else:
print(f"Install not supported for: {os_type}")
exit(1)
if is_linux and package in linux_after_command:
os.system(linux_after_command[package])
def check_os():
if is_linux or is_macos or is_windows:
print(f"Running on {os_type}")
else:
print(f"Unsupported OS family: {os_type}")
exit(1)
if __name__ == "__main__":
print(f'is_windows: {is_windows}, is_macos: {is_macos}, is_linux: {is_linux}, is_debian: {is_debian}, is_rhel: {is_rhel}')
check_os()
update_system()
if is_rhel:
for p in rhel_packages: install(p)
if is_linux:
for p in linux_packages: install(p)