Sha256: bc826b4bba2dc3dde18112d5f8bffb188a9a2339ccd698e98472b64a0733e9d1

Contents?: true

Size: 1.64 KB

Versions: 16

Compression:

Stored size: 1.64 KB

Contents

#include <facter/facts/collection.hpp>
#include <internal/facts/external/json_resolver.hpp>
#include <internal/facts/external/text_resolver.hpp>
#include <internal/facts/external/yaml_resolver.hpp>
#include <internal/facts/external/execution_resolver.hpp>
#include <leatherman/util/environment.hpp>
#include <unistd.h>
#include <vector>
#include <string>
#include <cstdlib>
#include <memory>

using namespace std;
using namespace leatherman::util;
using namespace facter::facts::external;

namespace facter { namespace facts {

    vector<string> collection::get_external_fact_directories() const
    {
        vector<string> directories;
        if (getuid()) {
            string home;
            if (environment::get("HOME", home)) {
                directories.emplace_back(home + "/.puppetlabs/opt/facter/facts.d");
                directories.emplace_back(home + "/.facter/facts.d");
            }
        } else {
            directories.emplace_back("/opt/puppetlabs/facter/facts.d");
            directories.emplace_back("/etc/facter/facts.d");
            directories.emplace_back("/etc/puppetlabs/facter/facts.d");
        }
        return directories;
    }

    vector<unique_ptr<external::resolver>> collection::get_external_resolvers()
    {
        vector<unique_ptr<external::resolver>> resolvers;
        resolvers.emplace_back(new text_resolver());
        resolvers.emplace_back(new yaml_resolver());
        resolvers.emplace_back(new json_resolver());

        // The execution resolver should go last as it doesn't check file extensions
        resolvers.emplace_back(new execution_resolver());
        return resolvers;
    }

}}  // namespace facter::facts

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
facter-3.12.2.cfacter.20181217 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.12.1.cfacter.20181031 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.11.6.cfacter.20181031 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.12.1.cfacter.20181023 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.11.5.cfacter.20181022 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.12.0.cfacter.20181004 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.12.0.cfacter.20181001 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.12.0.cfacter.20180918 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.11.4.cfacter.20180821 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.11.3.cfacter.20180716 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.11.2.cfacter.20180612 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.9.6.cfacter.20180612 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.11.2.cfacter.20180606 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.9.6.cfacter.20180606 ext/facter/facter/lib/src/facts/posix/collection.cc
facter-3.11.0.cfacter.20180319 ext/facter/facter/lib/src/facts/posix/collection.cc
cfacter-3.11.0.rc.20180314 ext/facter/facter/lib/src/facts/posix/collection.cc