Build a Task with a temporary workdir. The task is executed via the shell with 1 MPI proc.
        Mainly used for invoking Abinit to get important parameters needed to prepare the real task.

        Args:
            mpi_procs: Number of MPI processes to use.

def temp_shell_task(cls, inp, mpi_procs=1, workdir=None, manager=None):
        """
        Build a Task with a temporary workdir. The task is executed via the shell with 1 MPI proc.
        Mainly used for invoking Abinit to get important parameters needed to prepare the real task.

        Args:
            mpi_procs: Number of MPI processes to use.
        """
        # Build a simple manager to run the job in a shell subprocess
        import tempfile
        workdir = tempfile.mkdtemp() if workdir is None else workdir
        if manager is None: manager = TaskManager.from_user_config()

        # Construct the task and run it
        task = cls.from_input(inp, workdir=workdir, manager=manager.to_shell_manager(mpi_procs=mpi_procs))
        task.set_name('temp_shell_task')
        return task