How do I script the installation of patterns and packages

I have a large number of patterns and packages that I typically select from Yast after installing openSUSE. Is there a way to pass Yast the list from a file? If not, is there an efficiency issue in calling zipper with a long list of packages to install?

Ideally I would like to have a single shell script that will enable Packman from the community repositories, select all of the patterns that I want, select all of the additional packages that I want and not give me any prompts that I wouldn’t get if I selected everything manually from the Yast menu.

https://doc.opensuse.org/projects/autoyast/#CreateProfile.Software

Personally,
I prefer to keep my install scripts separate from the installation.
If you want to create a completely unattended install, then you can use AutoYaST.

When the script is run separately from the install,
I have the option to write the script so that it can be applied to TW, LEAP, or any openSUSE version I wish to support.

Some basic commands that can be used in an unattended script…
https://en.opensuse.org/User:Tsu2/BASH_zypper

A script I wrote that detects the version of openSUSE it’s running on, adds repositories as necessary, installs various dependencies, and then kicks off the project’s main C Build
https://github.com/putztzu/lc0/blob/master/install_openSUSE_lc0.sh

Various other install scripts I’ve written are sprinkled throughout my Wiki,
Many I have not looked at in years so don’t know if they work or what would be needed to update to run on a later openSUSE but can give you ideas how to do various things
https://en.opensuse.org/User:Tsu2

One interesting script I wrote is to install Devstack which uses heredoc as an answer file to give me some configuration flexibility
https://en.opensuse.org/User:Tsu2/openstack-install

You can also post any questions you might have about creating install scripts in the Development forum…
https://forums.opensuse.org/forumdisplay.php/678-Programming-Scripting

And yes,
Everything you listed in your original post about making your script iadd a repo, install and possibly configure packages/apps is described in my links.

TSU