diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..0654e4a --- /dev/null +++ b/setup.py @@ -0,0 +1,406 @@ +import subprocess +from dataclasses import dataclass + +sep = "---------------------------------------------------------" +header = f"""\033c\ + :::::::-. ... ... :::::::.. .::::::. + ;;, `';, .;;;;;;;. .;;;;;;;. ;;;;``;;;; ;;;` ` + `[[ [[,[[ \\[[,,[[ \\[[,[[[,/[[[' '[==/[[[[, + $$, $$$$$, $$$$$$, $$$$$$$$$c ''' $ + 888_,o8P'"888,_ _,88P"888,_ _,88P888b "88bo,88b dP + MMMMP"` "YMMMMMP" "YMMMMMP" MMMM "W" "YMmMY" + + Doors are sturdier than windows. +{sep} +""" + + +@dataclass +class Dependency: + # shell, gui, extra + group: str = "" + + # existence of a name implies distro support + # yay + name_arch: str = "" + name_arch_arm: str = "" + + # apt + name_debian: str = "" + + # dnf + name_fedora: str = "" + + +Manifest = [ + Dependency( + name_arch="acpi", + name_arch_arm="acpi", + group="gui", + ), + Dependency( + name_arch="alacritty", + name_arch_arm="alacritty", + group="gui", + ), + Dependency( + name_arch="arandr", + name_arch_arm="arandr", + group="gui", + ), + Dependency( + name_arch="atool", + name_arch_arm="atool", + group="shell", + ), + Dependency( + name_arch="awesome", + name_arch_arm="awesome", + group="gui", + ), + Dependency( + name_arch="bat", + name_arch_arm="bat", + group="shell", + ), + Dependency( + name_arch="beautiful-discord-git", + group="extra", + ), + Dependency( + name_arch="bluez", + name_arch_arm="bluez", + group="gui", + ), + Dependency( + name_arch="btop", + name_arch_arm="btop", + group="shell", + ), + Dependency( + name_arch="byobu", + name_arch_arm="byobu", + group="shell", + ), + Dependency( + name_arch="caprine", + group="extra", + ), + Dependency( + name_arch="chromium", + name_arch_arm="chromium", + group="gui", + ), + Dependency( + name_arch="coreutils", + name_arch_arm="coreutils", + group="shell", + ), + Dependency( + name_arch="discord", + group="extra", + ), + Dependency( + name_arch="fd", + name_arch_arm="fd", + group="shell", + ), + Dependency( + name_arch="ffmpegthumbnailer", + name_arch_arm="ffmpegthumbnailer", + group="gui", + ), + Dependency( + name_arch="file", + name_arch_arm="file", + group="shell", + ), + Dependency( + name_arch="firefox-developer-edition", + name_arch_arm="firefox", + group="gui", + ), + Dependency( + name_arch="fzf", + name_arch_arm="fzf", + group="shell", + ), + Dependency( + name_arch="glow", + name_arch_arm="glow", + group="shell", + ), + Dependency( + name_arch="gimp", + group="extra", + ), + Dependency( + name_arch="maim", + group="gui", + ), + Dependency( + name_arch="man-db", + name_arch_arm="man-db", + group="shell", + ), + Dependency( + name_arch="man-pages", + name_arch_arm="man-pages", + group="shell", + ), + Dependency( + name_arch="mediainfo", + name_arch_arm="mediainfo", + group="shell", + ), + Dependency( + name_arch="mosh", + name_arch_arm="mosh", + group="shell", + ), + Dependency( + name_arch="neovim", + name_arch_arm="neovim", + group="shell", + ), + Dependency( + name_arch="nnn", + name_arch_arm="nnn", + group="shell", + ), + Dependency( + name_arch="noto-fonts", + name_arch_arm="noto-fonts", + group="gui", + ), + Dependency( + name_arch="noto-fonts-cjk", + name_arch_arm="noto-fonts-cjk", + group="gui", + ), + Dependency( + name_arch="noto-fonts-emoji", + name_arch_arm="noto-fonts-emoji", + group="gui", + ), + Dependency( + name_arch="npm", + name_arch_arm="npm", + group="shell", + ), + Dependency( + name_arch="nsxiv", + name_arch_arm="nsxiv", + group="gui", + ), + Dependency( + name_arch="oh-my-zsh-git", + name_arch_arm="oh-my-zsh-git", + group="shell", + ), + Dependency( + name_arch="otf-font-awesome", + name_arch_arm="otf-font-awesome", + group="gui", + ), + Dependency( + name_arch="picom", + name_arch_arm="picom", + group="gui", + ), + Dependency( + name_arch="playerctl", + name_arch_arm="playerctl", + group="gui", + ), + Dependency( + name_arch="polkit-gnome", + name_arch_arm="polkit-gnome", + group="gui", + ), + Dependency( + name_arch="python-pywal", + name_arch_arm="python-pywal", + group="shell", + ), + Dependency( + name_arch="python-pywalfox", + name_arch_arm="python-pywalfox", + group="extra", + ), + Dependency( + name_arch="pywal-discord-git", + group="extra", + ), + Dependency( + name_arch="rate-mirrors", + name_arch_arm="rate-mirrors", + group="shell", + ), + Dependency( + name_arch="redshift", + name_arch_arm="redshift", + group="gui", + ), + Dependency( + name_arch="ripgrep", + name_arch_arm="ripgrep", + group="shell", + ), + Dependency( + name_arch="rsync", + name_arch_arm="rsync", + group="shell", + ), + Dependency( + name_arch="rubygems", + name_arch_arm="rubygems", + group="shell", + ), + Dependency( + name_arch="sl", + name_arch_arm="sl", + group="shell", + ), + Dependency( + name_arch="spotify-launcher", + group="extra", + ), + Dependency( + name_arch="steam", + group="extra", + ), + Dependency( + name_arch="tar", + name_arch_arm="tar", + group="shell", + ), + Dependency( + name_arch="telegram-desktop", + name_arch_arm="telegram-desktop", + group="extra", + ), + Dependency( + name_arch="thunderbird", + name_arch_arm="thunderbird", + group="extra", + ), + Dependency( + name_arch="tree", + name_arch_arm="tree", + group="shell", + ), + Dependency( + name_arch="ttf-font-awesome", + name_arch_arm="ttf-font-awesome", + group="gui", + ), + Dependency( + name_arch="unclutter", + name_arch_arm="unclutter", + group="gui", + ), + Dependency( + name_arch="unrar", + name_arch_arm="unrar", + group="shell", + ), + Dependency( + name_arch="unzip", + name_arch_arm="unzip", + group="shell", + ), + Dependency( + name_arch="wal-telegram-git", + group="extra", + ), + Dependency( + name_arch="w3m", + name_arch_arm="w3m", + group="shell", + ), + Dependency( + name_arch="wget", + name_arch_arm="wget", + group="shell", + ), + Dependency( + name_arch="xclip", + name_arch_arm="xclip", + group="gui", + ), + Dependency( + name_arch="xorg-server", + name_arch_arm="xorg-server", + group="gui", + ), + Dependency( + name_arch="xorg-xinit", + name_arch_arm="xorg-xinit", + group="gui", + ), + Dependency( + name_arch="xorg-xrandr", + name_arch_arm="xorg-xrandr", + group="gui", + ), + Dependency( + name_arch="zsh", + name_arch_arm="zsh", + group="shell", + ), +] + + +def dump_manifest(Manifest): + print("Manifest:") + + for dep in Manifest: + print( + f"""{sep} + Names: + Arch: {dep.name_arch} + Arch ARM: {dep.name_arch_arm} + Debian: {dep.name_debian} + Fedora: {dep.name_fedora} + + Group: {dep.group} + + Support: + Arch: {True if dep.name_arch else False} + Arch Arm: {True if dep.name_arch_arm else False} + Debian: {True if dep.name_debian else False} + Fedora: {True if dep.name_fedora else False} + """ + ) + + +def dump_arch(Manifest): + for data in Manifest: + if data.name_arch: + print(data.name_arch) + + +def dump_arch_arm(Manifest): + for data in Manifest: + if data.name_arch_arm: + print(data.name_arch_arm) + + +# test for base deps: git, yay, etc +# test for package manager + +print(header) +# dump_manifest(Manifest) +dump_arch(Manifest) +# dump_arch_arm(Manifest) + +subprocess.run(f"python --version", shell=True, check=True) + + +mystring = "" + +if not mystring: + print("no string") +else: + print(mystring)