dropin.h revision 1a7f1b385cd9de8a0da934fadc379860f914ef33
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering#pragma once
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering/***
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering This file is part of systemd.
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering Copyright 2014 Zbigniew Jędrzejewski-Szmek
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering systemd is free software; you can redistribute it and/or modify it
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering under the terms of the GNU Lesser General Public License as published by
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering the Free Software Foundation; either version 2.1 of the License, or
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering (at your option) any later version.
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering systemd is distributed in the hope that it will be useful, but
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering WITHOUT ANY WARRANTY; without even the implied warranty of
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering Lesser General Public License for more details.
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering You should have received a copy of the GNU Lesser General Public License
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering along with systemd; If not, see <http://www.gnu.org/licenses/>.
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering***/
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering#include "macro.h"
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering#include "set.h"
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering#include "unit-name.h"
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poetteringint drop_in_file(const char *dir, const char *unit, unsigned level,
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering const char *name, char **_p, char **_q);
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poetteringint write_drop_in(const char *dir, const char *unit, unsigned level,
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering const char *name, const char *data);
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poetteringint write_drop_in_format(const char *dir, const char *unit, unsigned level,
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering const char *name, const char *format, ...) _printf_(5, 6);
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering/**
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering * This callback will be called for each directory entry @entry,
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering * with @filepath being the full path to the entry.
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering *
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering * If return value is negative, loop will be aborted.
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering */
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poetteringtypedef int (*dependency_consumer_t)(UnitDependency dependency,
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poettering const char *entry,
const char* filepath,
void *arg);
int unit_file_process_dir(
Set * unit_path_cache,
const char *unit_path,
const char *name,
const char *suffix,
UnitDependency dependency,
dependency_consumer_t consumer,
void *arg,
char ***strv);
int unit_file_find_dropin_paths(
char **lookup_path,
Set *unit_path_cache,
Set *names,
char ***paths);