#[cfg(feature = "remote-run")]
extern crate czmq;
#[macro_use]
extern crate lazy_static;
extern crate libc;
extern crate mustache;
extern crate regex;
extern crate rustc_serialize;
extern crate serde;
extern crate serde_json;
#[cfg(test)]
extern crate tempdir;
extern crate tempfile;
extern crate zdaemon;
extern crate zfilexfer;
#[macro_use]
mod ffi_helpers;
pub mod command;
mod project;
pub mod directory;
pub mod error;
pub mod file;
#[macro_use]
mod host;
#[cfg(all(test, feature = "remote-run"))]
mod mock_env;
pub mod package;
#[cfg(feature = "remote-run")]
mod payload;
pub mod service;
mod target;
pub mod template;
pub use command::{Command, CommandResult};
pub use directory::{Directory, DirectoryOpts};
pub use error::Error;
pub use file::{File, FileOwner};
pub use host::Host;
pub use host::data::open as data_open;
pub use host::ffi::{host_data, get_value, get_value_keys, get_value_type};
#[cfg(feature = "local-run")]
pub use host::ffi::host_local;
#[cfg(feature = "remote-run")]
pub use host::ffi::{host_connect, host_connect_endpoint, host_connect_payload, host_close};
pub use mustache::{MapBuilder, VecBuilder};
pub use package::Package;
pub use package::providers::{Provider, ProviderFactory, Providers};
#[cfg(feature = "remote-run")]
pub use payload::Payload;
#[cfg(feature = "remote-run")]
pub use payload::config::Config as PayloadConfig;
#[cfg(feature = "remote-run")]
pub use payload::ffi::{payload_new, payload_build, payload_run, payload_free};
pub use project::{Language, ProjectConfig};
pub use serde_json::Value;
pub use service::{Service, ServiceRunnable};
pub use template::Template;
pub use zfilexfer::FileOptions;
#[cfg(feature = "remote-run")]
use zdaemon::ConfigFile;
#[cfg(all(test, feature = "remote-run"))]
lazy_static! {
static ref _MOCK_ENV: mock_env::MockEnv = mock_env::MockEnv::new();
}
#[cfg(feature = "remote-run")]
lazy_static! {
static ref PROJECT_CONFIG: project::ProjectConfig = project::ProjectConfig::load("project.json")
.expect("Could not load project.json");
}