Skip to content
Snippets Groups Projects
  • Simon McVittie's avatar
    feb92d87
    pressure-vessel: Remove the concept of "locking" environment variables · feb92d87
    Simon McVittie authored
    
    This was only necessary because we were reusing a single container
    across multiple entry-point invocations, and expecting "most" arbitrary
    environment variables from each new invocation to be taken into account
    for commands running in the container, which meant that we needed to
    keep track of which environment variables had to be exceptions to that
    rule for technical reasons. Now that we're no longer injecting multiple
    commands into the same container like that, we don't need this
    complexity.
    
    Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
    feb92d87
    History
    pressure-vessel: Remove the concept of "locking" environment variables
    Simon McVittie authored
    
    This was only necessary because we were reusing a single container
    across multiple entry-point invocations, and expecting "most" arbitrary
    environment variables from each new invocation to be taken into account
    for commands running in the container, which meant that we needed to
    keep track of which environment variables had to be exceptions to that
    rule for technical reasons. Now that we're no longer injecting multiple
    commands into the same container like that, we don't need this
    complexity.
    
    Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
environ.h 1.40 KiB
/*
 * Copyright © 2014-2018 Red Hat, Inc
 * Copyright © 2020 Collabora Ltd.
 * SPDX-License-Identifier: LGPL-2.1-or-later
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 */

#pragma once

#include "libglnx/libglnx.h"

#include "steam-runtime-tools/glib-backports-internal.h"

typedef struct _PvEnviron PvEnviron;

PvEnviron *pv_environ_new (void);
void pv_environ_free (PvEnviron *self);

void pv_environ_setenv (PvEnviron *self,
                        const char *var,
                        const char *val);
void pv_environ_inherit_env (PvEnviron *self,
                             const char *var);

GList *pv_environ_get_vars (PvEnviron *self);
const char *pv_environ_getenv (PvEnviron *self,
                               const char *var);

G_DEFINE_AUTOPTR_CLEANUP_FUNC (PvEnviron, pv_environ_free)