/* See LICENSE file for copyright and license details. */
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>

#include "util.h"

static void
usage(void)
{
	eprintf("usage: %s dir [cmd [arg ...]]\n", argv0);
}

int
main(int argc, char *argv[])
{
	char *shell[] = { "/bin/sh", "-i", NULL }, *aux, *cmd;
	int savederrno;

	argv0 = argv[0], argc--, argv++;

	if (!argc)
		usage();

	if ((aux = getenv("SHELL")))
		shell[0] = aux;

	if (chroot(argv[0]) < 0)
		eprintf("chroot %s:", argv[0]);

	if (chdir("/") < 0)
		eprintf("chdir:");

	if (argc == 1) {
		cmd = *shell;
		execvp(cmd, shell);
	} else {
		cmd = argv[1];
		execvp(cmd, argv + 1);
	}

	savederrno = errno;
	weprintf("execvp %s:", cmd);

	_exit(126 + (savederrno == ENOENT));
}
