// builds the connector from a given path (never called by the engine directly) fn build_from_path(ctx, repo_path) { cargo("build --release --all-features", repo_path); ctx.copy_cargo_plugin_artifact(repo_path, name_to_lib(ctx.crate_name())); } // builds the connector from local path fn build_local(ctx) { build_from_path(ctx, ctx.build_path()) } fn get_source(ctx) { ctx.extract(ctx.download_repository()) } // builds the connector from source (github) fn build_from_source(ctx) { build_from_path(ctx, get_source(ctx)) } // downloads a binary release of a plugin fn install(ctx) { let libname = name_to_lib_with_arch(ctx.crate_name()); let artifact = ctx.github_release_artifact(libname); ctx.write_plugin_artifact(artifact, name_to_lib(ctx.crate_name())); }