Exemple #1
0
static void test_task_env_role_members_standalone(void)
{
  Task *task = g_slice_new0(Task);
  Param rmem = {"RECIPE_MEMBERS", "otherhost localhost"};
  gchar *rmembers = NULL;

  task->rhts_compat = FALSE;
  task->recipe = g_slice_new0(Recipe);
  task->params = g_list_append(task->params, &rmem);

  build_env("http://localhost", task);
  g_ptr_array_foreach(task->env, (GFunc)get_env_rmembers, &rmembers);

  g_assert_cmpstr(rmembers, ==, "otherhost localhost");

  g_slice_free(Recipe, task->recipe);

  if (task->env != NULL) {
    g_ptr_array_free(task->env, TRUE);
  }
  g_list_free(task->params);
  g_slice_free(Task, task);

  if (rmembers != NULL) {
    g_free(rmembers);
  }
}
Exemple #2
0
int		main(int argc, char **argv)
{
    extern char	**environ;
    t_sllist	*myenv;
    int		fd;

    build_env(environ, &myenv);
    if (argc > 1)
    {
        if (!access(argv[1], R_OK))
        {
            fd = xopen(argv[1], O_RDONLY, 0644);
            xdup2(fd, 0);
            mysh(1, &myenv);
            xclose(fd);
        }
        else
            fprintf(stderr, "%s %s\n", "Unable to access :", argv[1]);
    }
    else
        mysh(!isatty(0), &myenv);
    free_env(myenv);
    auto_comp(NULL, NULL, DEL, NULL);
    return (EXIT_SUCCESS);
}
Exemple #3
0
static void		exec_file(char **cmd, int isnew_env, char **env)
{
	if (!isnew_env)
		env = build_env(glob()->env);
	isaccess(&(*cmd), 0, 0);
	execve(*cmd, cmd, env);
	ft_puttext_fd("42sh: cannot exec: ", *cmd, "\n", 2);
	if (env)
		ft_p_free(&env);
	exit(3);
}
Exemple #4
0
static void		exec_bin(char **cmd, int isnew_env, char **env)
{
	char	**path;
	int		i;

	if (!isnew_env)
		env = build_env(glob()->env);
	if ((!isnew_env) || (isnew_env && !getenv_path(env)))
		path = bin(*cmd, ft_getenv("PATH"));
	else
		path = bin(*cmd, getenv_path(env));
	if ((i = isaccess(path, 1, 0)) > -1)
		execve(path[i], cmd, env);
	ft_puttext_fd("42sh: command not found: ", *cmd, "\n", 2);
	if (path)
		ft_p_free(&path);
	if (env)
		ft_p_free(&env);
	exit(5);
}
Exemple #5
0
static void test_task_env_role_members_beaker(void)
{
  Task *task = g_slice_new0(Task);
  GList *roles = NULL;
  gchar *rmembers = NULL;

  Role srv = { "SERVERS", "localhost" };
  Role clt = { "CLIENTS", "otherhost" };
  Role dupe = { "CLIENTS", "localhost" };

  roles = g_list_append(roles, &srv);
  roles = g_list_append(roles, &clt);
  roles = g_list_append(roles, &dupe);

  task->rhts_compat = FALSE;
  task->recipe = g_slice_new0(Recipe);
  task->roles = roles;

  build_env("http://localhost", task);
  g_ptr_array_foreach(task->env, (GFunc)get_env_rmembers, &rmembers);

  g_assert_cmpstr(rmembers, ==, "otherhost localhost");

  g_list_free(roles);

  g_slice_free(Recipe, task->recipe);

  if (task->env != NULL) {
    g_ptr_array_free(task->env, TRUE);
  }
  g_slice_free(Task, task);

  if (rmembers != NULL) {
    g_free(rmembers);
  }
}