Nix 2.29.0
Nix, the purely functional package manager: C API (experimental)
Loading...
Searching...
No Matches
nix_api_flake.h File Reference

Main entry for the libflake C bindings. More...

#include "nix_api_fetchers.h"
#include "nix_api_store.h"
#include "nix_api_util.h"
#include "nix_api_expr.h"

Go to the source code of this file.

Typedefs

typedef struct nix_flake_settings nix_flake_settings
 A settings object for configuring the behavior of the nix-flake-c library.
typedef struct nix_flake_reference_parse_flags nix_flake_reference_parse_flags
 Context and paramaters for parsing a flake reference.
typedef struct nix_flake_reference nix_flake_reference
 A reference to a flake.
typedef struct nix_flake_lock_flags nix_flake_lock_flags
 Parameters for locking a flake.
typedef struct nix_locked_flake nix_locked_flake
 A flake with a suitable lock (file or otherwise)

Functions

nix_flake_settingsnix_flake_settings_new (nix_c_context *context)
void nix_flake_settings_free (nix_flake_settings *settings)
 Release the resources associated with a nix_flake_settings.
nix_err nix_flake_settings_add_to_eval_state_builder (nix_c_context *context, nix_flake_settings *settings, nix_eval_state_builder *builder)
 Initialize a nix_flake_settings to contain builtins.getFlake and potentially more.
nix_flake_reference_parse_flagsnix_flake_reference_parse_flags_new (nix_c_context *context, nix_flake_settings *settings)
 A new nix_flake_reference_parse_flags with defaults.
void nix_flake_reference_parse_flags_free (nix_flake_reference_parse_flags *flags)
 Deallocate and release the resources associated with a nix_flake_reference_parse_flags. Does not fail.
nix_err nix_flake_reference_parse_flags_set_base_directory (nix_c_context *context, nix_flake_reference_parse_flags *flags, const char *baseDirectory, size_t baseDirectoryLen)
 Provide a base directory for parsing relative flake references.
nix_flake_lock_flagsnix_flake_lock_flags_new (nix_c_context *context, nix_flake_settings *settings)
 A new nix_flake_lock_flags with defaults.
void nix_flake_lock_flags_free (nix_flake_lock_flags *settings)
 Deallocate and release the resources associated with a nix_flake_lock_flags. Does not fail.
nix_err nix_flake_lock_flags_set_mode_check (nix_c_context *context, nix_flake_lock_flags *flags)
 Put the lock flags in a mode that checks whether the lock is up to date.
nix_err nix_flake_lock_flags_set_mode_virtual (nix_c_context *context, nix_flake_lock_flags *flags)
 Put the lock flags in a mode that updates the lock file in memory, if needed.
nix_err nix_flake_lock_flags_set_mode_write_as_needed (nix_c_context *context, nix_flake_lock_flags *flags)
 Put the lock flags in a mode that updates the lock file on disk, if needed.
nix_err nix_flake_lock_flags_add_input_override (nix_c_context *context, nix_flake_lock_flags *flags, const char *inputPath, nix_flake_reference *flakeRef)
 Add input overrides to the lock flags.
nix_locked_flakenix_flake_lock (nix_c_context *context, nix_fetchers_settings *fetchSettings, nix_flake_settings *settings, EvalState *eval_state, nix_flake_lock_flags *flags, nix_flake_reference *flake)
 Lock a flake, if not already locked.
void nix_locked_flake_free (nix_locked_flake *locked_flake)
 Deallocate and release the resources associated with a nix_locked_flake. Does not fail.
nix_err nix_flake_reference_and_fragment_from_string (nix_c_context *context, nix_fetchers_settings *fetchSettings, nix_flake_settings *flakeSettings, nix_flake_reference_parse_flags *parseFlags, const char *str, size_t strLen, nix_flake_reference **flakeReferenceOut, nix_get_string_callback fragmentCallback, void *fragmentCallbackUserData)
 Parse a URL-like string into a nix_flake_reference.
void nix_flake_reference_free (nix_flake_reference *store)
 Deallocate and release the resources associated with a nix_flake_reference.
nix_valuenix_locked_flake_get_output_attrs (nix_c_context *context, nix_flake_settings *settings, EvalState *evalState, nix_locked_flake *lockedFlake)
 Get the output attributes of a flake.

Detailed Description

Main entry for the libflake C bindings.