def __setup(self):
        """Construct the series of shell commands, i.e., fill in
           self.__commands"""

        # tarball must be specified
        if not self.__tarball:
            raise RuntimeError('Intel PSXE tarball not specified')

        # Get the name of the directory that created when the tarball
        # is extracted.  Assume it is the same as the basename of the
        # tarball.
        self.__tarball_name = posixpath.basename(self.__tarball)
        basedir = posixpath.splitext(self.__tarball_name)[0]

        # Untar
        self.__commands.append(self.untar_step(
            tarball=posixpath.join(self.__wd, self.__tarball_name),
            directory=(self.__wd)))

        # Configure silent install
        silent_cfg=[
            r's/^#\?\(COMPONENTS\)=.*/\1={}/g'.format(
                ';'.join(self.__components)),
            r's|^#\?\(PSET_INSTALL_DIR\)=.*|\1={}|g'.format(self.__prefix)]

        # EULA acceptance
        if self.__eula:
            silent_cfg.append(r's/^#\?\(ACCEPT_EULA\)=.*/\1=accept/g')

        # License activation
        if self.__license and '@' in self.__license:
            # License server
            silent_cfg.append(r's/^#\?\(ACTIVATION_TYPE\)=.*/\1=license_server/g')
            silent_cfg.append(r's/^#\?\(ACTIVATION_LICENSE_FILE\)=.*/\1={}/g'.format(self.__license))
        elif self.__license:
            # License file
            silent_cfg.append(r's/^#\?\(ACTIVATION_TYPE\)=.*/\1=license_file/g')
            silent_cfg.append(r's|^#\?\(ACTIVATION_LICENSE_FILE\)=.*|\1={}|g'.format(posixpath.join(self.__wd, 'license.lic')))
        else:
            # No license, will most likely not work
            logging.warning('No Intel Parallel Studio XE license specified')

        # Update the silent config file
        self.__commands.append(self.sed_step(
            file=posixpath.join(self.__wd, basedir, 'silent.cfg'),
            patterns=silent_cfg))

        # Install
        self.__commands.append(
            'cd {} && ./install.sh --silent=silent.cfg'.format(
                posixpath.join(self.__wd, basedir)))

        # Cleanup runfile
        self.__commands.append(self.cleanup_step(
            items=[posixpath.join(self.__wd, self.__tarball_name),
                   posixpath.join(self.__wd, basedir)]))

        # Set the environment
        self.environment_variables = self.__environment()
Construct the series of shell commands, i.e., fill in
           self.__commands
hpccm/building_blocks/intel_psxe.py