if [ -e 00header ];then
sleep .01
else
cat >> 00header <<EOF
pacstrap
/mnt
--overwrite
\*
--needed
EOF
fi
if [ -e base ];then
sleep .01
else
cat >> base <<EOF
acl
acpi
alsa-firmware
alsa-ucm-conf
alsa-utils
amd-ucode
apfs-fuse-git
apfsprogs-git
arch-install-scripts
archinstall
archlinux-keyring
archlinux32-keyring
argon2
attr
audit
b43-firmware
b43-fwcutter
b43legacy-firmware
base
base-devel
bash
bcachefs-tools
beep
bind
bluez
bluez-libs
bluez-utils
bolt
brltty
broadcom-wl-dkms
btrfs-progs
bzip2
ca-certificates
ca-certificates-mozilla
ca-certificates-utils
chntpw
clonezilla
cloud-init
coreutils
cpio
cracklib
cryptsetup
curl
darkhttpd
db
dbus
ddrescue
device-mapper
dhclient
dhcpcd
dialog
diffutils
dmidecode
dmraid
dnsmasq
dos2unix
dosfstools
dotconf
e2fsprogs
edk2-shell
efibootmgr
efitools
electron-starship-config-git
elinks
espeak-ng
espeakup
ethtool
ex-vi-compat
exfat-utils
exfatprogs
expat
f2fs-tools
fatresize
fbdetect
fenrir
file
filesystem
findutils
fsarchiver
fscrypt
fzf
gawk
gcc-libs
gdbm
gettext
git
glib2
glibc
gmp
gnupg
gnutls
gpart
gpgme
gpm
gptfdisk
grep
grml-zsh-config
grub
gzip
haveged
hdparm
hfsprogs
hid-apple-patched-dkms-git
hwdata
hyperv
iana-etc
icu
inetutils
intel-ucode
iproute2
iptables-nft
iputils
irssi
iw
iwd
jfsutils
json-c
kbd
kexec-tools
keyutils
kmod
krb5
ldns
less
lftp
libarchive
libassuan
libcap
libcap-ng
libelf
libffi
libfido2
libgcrypt
libgpg-error
libidn2
libksba
libldap
libmnl
libndp
libnetfilter_conntrack
libnewt
libnfnetlink
libnftnl
libnghttp2
libnl
libnm
libp11-kit
libpcap
libpsl
libsasl
libseccomp
libsecret
libsonic
libsoup
libssh2
libtasn1
libteam
libtirpc
libunistring
libusb
libusb-compat
libxml2
licenses
linux
linux-api-headers
linux-atm
linux-firmware
linux-firmware-bnx2x
linux-firmware-liquidio
linux-firmware-marvell
linux-firmware-mellanox
linux-firmware-nfp
linux-firmware-qcom
linux-firmware-qlogic
linux-firmware-whence
linux-headers
livecd-sounds
logrotate
lsof
lsscsi
lvm2
lxc
lynx
lz4
lzip
man-db
man-pages
mc
mdadm
memtest86+
memtest86+-efi
miniupnpc
mkinitcpio
mkinitcpio-archiso
mkinitcpio-nfs-utils
mmc-utils
modemmanager
mokutil
mpfr
mtools
nano
nbd
ncurses
ndisc6
net-tools
netctl
nettle
networkmanager
nfs-utils
nilfs-utils
nmap
npth
nss-mdns
ntfs-3g
ntp
nvme-cli
open-iscsi
open-vm-tools
openbsd-netcat
openconnect
openpgp-card-tools
openresolv
openssh
openssl
openvpn
os-prober
p11-kit
pacman
pacman-mirrorlist
pam
pambase
partclone
parted
partimage
pciutils
pcre
pcre2
pcsclite
perl
pi-bluetooth
pinentry
polkit
popt
portaudio
ppp
pptpclient
procps-ng
psmisc
pv
python-pyalsaaudio
python-pyenchant
python-six
qemu-block-curl
qemu-block-dmg
qemu-block-nfs
qemu-block-ssh
qemu-common
qemu-guest-agent
qemu-img
qemu-system-aarch64
qemu-system-arm
qemu-system-x86
qemu-ui-curses
qemu-user-static
qemu-user-static-binfmt
readline
refind
reflector
rhvoice
rhvoice-language-english
rhvoice-voice-bdl
rsync
rxvt-unicode-terminfo
s-nail
sbsigntools
screen
sdparm
sed
sequoia-sq
sg3_utils
shadow
shim-signed
smartmontools
sof-firmware
sof-tools
sox
speech-dispatcher
speechctl
speedtouch
sqlite
squashfs-tools
starship
sudo
sysfsutils
syslinux
systemd
systemd-libs
systemd-resolvconf
systemd-sysvcompat
tar
tcpdump
terminus-font
testdisk
texinfo
tmux
tor
tpm2-tools
tpm2-tss
ttf-terminus-nerd
tzdata
udftools
unzip
usb_modeswitch
usbmuxd
usbutils
util-linux
util-linux-libs
vim
virtualbox-guest-utils-nox
vpnc
wget
which
wimlib
wireguard-tools
wireless-regdb
wireless_tools
wpa_supplicant
wvdial
xdg-utils
xfsprogs
xl2tpd
xz
zd1211-firmware
zlib
zoxide
zsh
zstd
EOF
fi
if [ -e basegui ];then
sleep .01
else
export neededgroups=`echo -en xorg xorg-apps xorg-drivers xorg-fonts`
cat >> basegui <<EOF
dbus-broker
gst-plugin-pipewire
kdialog
lib32-pipewire
lib32-pipewire-jack
lib32-pipewire-v4l2
mate-polkit
mate-screensaver
mate-terminal
notification-daemon 
orca
pipewire
pipewire-docs
pipewire-jack
pipewire-pulse
pipewire-v4l2
pipewire-x11-bell
pipewire-zeroconf
ratpoison
realtime-privileges
rtkit
scrot
sox
tesseract
tesseract-data-eng
udisks2
wireplumber
xorg-xinit
xsel
EOF
for g in `echo -en $neededgroups`;do
pacman -Sg $g|cut -f 2 -d \  >> basegui
done
unset neededgroups
fi
if [ -e all ];then
sleep .01
else
cp base all
export neededgroups=`pacman -Sg|sort|uniq|sed '/blackarch-anti-forensic/d;/blackarch-automation/d;/blackarch-automobile/d;/blackarch-backdoor/d;/blackarch-binary/d;/blackarch-bluetooth/d;/blackarch-code-audit/d;/blackarch-config/d;/blackarch-cracker/d;/blackarch-crypto/d;/blackarch-database/d;/blackarch-debugger/d;/blackarch-decompiler/d;/blackarch-defensive/d;/blackarch-disassembler/d;/blackarch-dos/d;/blackarch-drone/d;/blackarch-exploitation/d;/blackarch-fingerprint/d;/blackarch-firmware/d;/blackarch-forensic/d;/blackarch-fuzzer/d;/blackarch-gpu/d;/blackarch-hardware/d;/blackarch-honeypot/d;/blackarch-ids/d;/blackarch-keylogger/d;/blackarch-malware/d;/blackarch-misc/d;/blackarch-mobile/d;/blackarch-networking/d;/blackarch-nfc/d;/blackarch-packer/d;/blackarch-proxy/d;/blackarch-radio/d;/blackarch-recon/d;/blackarch-reversing/d;/blackarch-scanner/d;/blackarch-sniffer/d;/blackarch-social/d;/blackarch-spoof/d;/blackarch-stego/d;/blackarch-tunnel/d;/blackarch-unpacker/d;/blackarch-voip/d;/blackarch-webapp/d;/blackarch-windows/d;/blackarch-wireless/d;/fcitx5-im/d;/lxde-gtk3/d;/openrc-accessible/d;/pantheon/d;/budgie/d'|tr \\\\n \\  `
cat >> all <<EOF
audacious
audacious-plugins
audacity
avahi
binfmt-support
blueman
cups
dbus-broker
dectalk
dnscrypt-proxy
edk2-ovmf
emacspeak
firefox
firefox-ublock-origin
foomatic-db
foomatic-db-gutenprint-ppds
foomatic-db-nonfree
foomatic-db-nonfree-ppds
foomatic-db-ppds
gammu
gnu-free-fonts
google-chrome
gst-plugin-pipewire
gvfs-afc 
gvfs-goa 
gvfs-gphoto2 
gvfs-mtp 
gvfs-nfs 
gvfs-smb 
hplip
ipp-usb
java-atk-wrapper-common 
java-atk-wrapper-openjdk8 
java-atk-wrapper-openjdk11 
java-atk-wrapper-openjdk17 
kdialog
kodi-addons-accessible
kodi-standalone-service
lib32-alsa-lib
lib32-alsa-plugins
lib32-gnutls
lib32-mpg123
lib32-pipewire
lib32-pipewire-jack
lib32-pipewire-v4l2
lib32-vkd3d
libdbi
libdvdcss
libgoom2
libkate
libmicrodns
libmythes
libnm
libnma
libnotify
libreoffice-fresh
libtiger
libva-intel-driver
live-media
lua-socket
mate-polkit
mate-screensaver
msitools
mutt
neomutt
network-manager-applet
network-manager-sstp
nm-connection-editor
notification-daemon
orca
pamac-aur
pavucontrol
pianobar
pidgin
pidgin-encryption
pidgin-hotkeys
pidgin-kwallet
pidgin-otr
pidgin-talkfilters
pidgin-toobars
pidgin-xmpp-receipts
pipewire
pipewire-docs
pipewire-jack
pipewire-pulse
pipewire-v4l2
pipewire-x11-bell
pipewire-zeroconf
purple-gammu
purple-hangouts-hg
qemu-desktop
qemu-emulators-full
ratpoison
rdesktop
realtime-privileges
remmina
rhvoice-language-english
rhvoice-voice-bdl
rtkit
scrot
skype-api-pidgin
sox
svox-pico-git
system-config-printer
talkfilters
terminator
tesseract
tesseract-data-eng
thunderbird
udisks2
vcdimager
virtualbox
virtualbox-host-dkms
virt-manager
vlc
vm-script
vkd3d
wireplumber
xorg-xinit
xsel
yasr
youtube-viewer
yt-dlp
EOF
for g in `echo -en $neededgroups`;do
pacman -Sg $g|cut -f 2 -d \  >> all
done
unset neededgroups
sed -i "/gnu-netcat/d;/archivebox/d" all
fi
if [ -e gnome ];then
sleep .01
else
export neededgroups=`echo -en gnome gnome-extra xorg xorg-apps xorg-drivers xorg-fonts`
cat >> gnome <<EOF
audacious
audacious-plugins
blueman
cups
dbus-broker
edk2-ovmf
firefox
firefox-ublock-origin
foomatic-db
foomatic-db-gutenprint-ppds
foomatic-db-nonfree
foomatic-db-nonfree-ppds
foomatic-db-ppds
gnome-keyring
gparted
gst-plugin-pipewire
gvfs-afc 
gvfs-goa 
gvfs-gphoto2 
gvfs-mtp 
gvfs-nfs 
gvfs-smb 
hplip
ipp-usb
lib32-alsa-lib
lib32-alsa-plugins
lib32-gnutls
lib32-mpg123
lib32-pipewire
lib32-pipewire-jack
lib32-pipewire-v4l2
lib32-vkd3d
libnotify
libreoffice-fresh
network-manager-applet
orca
pamac-aur
pavucontrol
pipewire
pipewire-docs
pipewire-jack
pipewire-pulse
pipewire-v4l2
pipewire-x11-bell
pipewire-zeroconf
qemu-desktop
qemu-emulators-full
rdesktop
realtime-privileges
remmina
rhvoice
rhvoice-language-english
rhvoice-voice-bdl
rtkit
scrot
system-config-printer
terminator
tesseract
tesseract-data-eng
thunderbird
ttf-ms-win11-auto
virt-manager
vkd3d
vlc
wireplumber
xorg-xinit
xsel
EOF
for g in `echo -en $neededgroups`;do
pacman -Sg $g|cut -f 2 -d \  >> gnome
done
unset neededgroups
fi
if [ -e kodi ];then
sleep .01
else
export neededgroups=`echo -en xorg xorg-apps xorg-drivers xorg-fonts`
cat >> kodi <<EOF
gst-plugin-pipewire
kodi
kodi-addons-accessible
kodi-standalone-service
lib32-pipewire
lib32-pipewire-jack
lib32-pipewire-v4l2
pipewire
pipewire-docs
pipewire-jack
pipewire-pulse
pipewire-v4l2
pipewire-x11-bell
pipewire-zeroconf
realtime-privileges
rtkit
wireplumber
xorg-xinit
xsel
EOF
for g in `echo -en $neededgroups`;do
pacman -Sg $g|cut -f 2 -d \  >> kodi
done
unset neededgroups
fi
if [ -e retroarch ];then
sleep .01
else
export neededgroups=`echo -en libretro xorg xorg-apps xorg-drivers xorg-fonts`
cat >> retroarch <<EOF
gst-plugin-pipewire
lib32-pipewire
lib32-pipewire-jack
lib32-pipewire-v4l2
pipewire
pipewire-docs
pipewire-jack
pipewire-pulse
pipewire-v4l2
pipewire-x11-bell
pipewire-zeroconf
ratpoison
realtime-privileges
rtkit
wireplumber
xorg-xinit
xsel
EOF
for g in `echo -en $neededgroups`;do
pacman -Sg $g|cut -f 2 -d \  >> retroarch
done
unset neededgroups
fi
if [ -e mate ];then
sleep .01
else
export neededgroups=`echo -en mate mate-extra xorg xorg-apps xorg-drivers xorg-fonts`
cat >> mate <<EOF
audacious
audacious-plugins
blueman
cups
dbus-broker
edk2-ovmf
firefox
firefox-ublock-origin
foomatic-db
foomatic-db-gutenprint-ppds
foomatic-db-nonfree
foomatic-db-nonfree-ppds
foomatic-db-ppds
gparted
gst-plugin-pipewire
gvfs-afc 
gvfs-goa 
gvfs-gphoto2 
gvfs-mtp 
gvfs-nfs 
gvfs-smb 
hplip
ipp-usb
lib32-alsa-lib
lib32-alsa-plugins
lib32-gnutls
lib32-mpg123
lib32-pipewire
lib32-pipewire-jack
lib32-pipewire-v4l2
lib32-vkd3d
libnotify
libreoffice-fresh
network-manager-applet
orca
pamac-aur
pavucontrol
pipewire
pipewire-docs
pipewire-jack
pipewire-pulse
pipewire-v4l2
pipewire-x11-bell
pipewire-zeroconf
qemu-desktop
qemu-emulators-full
rdesktop
realtime-privileges
remmina
rhvoice
rhvoice-language-english
rhvoice-voice-bdl
rtkit
scrot
system-config-printer
terminator
tesseract
tesseract-data-eng
thunderbird
ttf-ms-win11-auto
virt-manager
vkd3d
vlc
wireplumber
xdg-desktop-portal-gtk
xorg-xinit
xsel
EOF
for g in `echo -en $neededgroups`;do
pacman -Sg $g|cut -f 2 -d \  >> mate
done
unset neededgroups
fi
if [ -e plasma ];then
sleep .01
else
export neededgroups=`echo -en plasma xorg xorg-apps xorg-drivers xorg-fonts`
cat >> plasma <<EOF
ark
audacious
audacious-plugins
blueman
cups
dbus-broker
dolphin
dolphin-plugins
edk2-ovmf
firefox
firefox-ublock-origin
foomatic-db
foomatic-db-gutenprint-ppds
foomatic-db-nonfree
foomatic-db-nonfree-ppds
foomatic-db-ppds
gst-plugin-pipewire
hplip
ipp-usb
kdeconnect
kio
kio-admin
kio-extras
kio-fuse
kio-gdrive
kio-zeroconf
kio5
kwallet
kwallet-pam
kwalletmanager
kwin
lib32-alsa-lib
lib32-alsa-plugins
lib32-gnutls
lib32-mpg123
lib32-pipewire
lib32-pipewire-jack
lib32-pipewire-v4l2
lib32-vkd3d
libqaccessibilityclient-qt6
libnotify
libreoffice-fresh
network-manager-applet
orca
pamac-aur
pavucontrol
pipewire
pipewire-docs
pipewire-jack
pipewire-pulse
pipewire-v4l2
pipewire-x11-bell
pipewire-zeroconf
plasma-x11-session
qemu-desktop
qemu-emulators-full
rdesktop
realtime-privileges
remmina
rhvoice
rhvoice-language-english
rhvoice-voice-bdl
rtkit
scrot
system-config-printer
terminator
tesseract
tesseract-data-eng
thunderbird
ttf-ms-win11-auto
virt-manager
vkd3d
vlc
wireplumber
xorg-xinit
xsel
EOF
for g in `echo -en $neededgroups`;do
pacman -Sg $g|cut -f 2 -d \  >> plasma
done
unset neededgroups
fi
cat 00header base|tr \\n \  >pkg.base
for f in "all" "basegui" "gnome" "kodi" "plasma" "retroarch" "mate";do
cat 00header base $f|tr \\n \  >pkg.$f
rm $f
done
sed -i "s| qemu-desktop qemu-emulators-full | qemu-base qemu-img |g;s| virtualbox-guest-utils | virtualbox-guest-utils-nox |g" pkg.base
rm 00header base
chmod 755 pkg.*
