diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-03-04 08:48:28 -0500 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-03-04 08:48:28 -0500 |
commit | 239330330a8fc49c6806cccdc17a910d23d22952 (patch) | |
tree | 0e2a3e2e852cafd718556bb31ab58ffc0968504c /src/artifactory.c | |
parent | 39861d1872731119795f954acc0412af64cd539d (diff) | |
download | stasis-239330330a8fc49c6806cccdc17a910d23d22952.tar.gz |
Prototypes documentation
Includes minor changes:
* Rename jfrt_upload_set_defaults to jfrt_upload_init
* Move jfrt_auth_init to artifactory.c
* Adds missing error handling to git_describe and git_rev_parse
Diffstat (limited to 'src/artifactory.c')
-rw-r--r-- | src/artifactory.c | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/src/artifactory.c b/src/artifactory.c index 55cb7dd..39a662d 100644 --- a/src/artifactory.c +++ b/src/artifactory.c @@ -115,7 +115,7 @@ void jfrt_register_opt_long(long jfrt_val, const char *opt_name, struct StrList strlist_append(*opt_map, data); } -void jfrt_upload_set_defaults(struct JFRT_Upload *ctx) { +void jfrt_upload_init(struct JFRT_Upload *ctx) { memset(ctx, 0, sizeof(*ctx)); ctx->recursive = true; ctx->threads = 3; @@ -135,6 +135,59 @@ static int auth_required(char *cmd) { return 0; } +int jfrt_auth_init(struct JFRT_Auth *auth_ctx) { + char *url = getenv("OMC_JF_ARTIFACTORY_URL"); + char *user = getenv("OMC_JF_USER"); + char *access_token = getenv("OMC_JF_ACCESS_TOKEN"); + char *password = getenv("OMC_JF_PASSWORD"); + char *ssh_key_path = getenv("OMC_JF_SSH_KEY_PATH"); + char *ssh_passphrase = getenv("OMC_JF_SSH_PASSPHRASE"); + char *client_cert_key_path = getenv("OMC_JF_CLIENT_CERT_KEY_PATH"); + char *client_cert_path = getenv("OMC_JF_CLIENT_CERT_PATH"); + + if (!url) { + fprintf(stderr, "Artifactory URL is not configured:\n"); + fprintf(stderr, "please set OMC_JF_ARTIFACTORY_URL\n"); + return -1; + } + auth_ctx->url = url; + + if (access_token) { + auth_ctx->user = NULL; + auth_ctx->access_token = access_token; + auth_ctx->password = NULL; + auth_ctx->ssh_key_path = NULL; + } else if (user && password) { + auth_ctx->user = user; + auth_ctx->password = password; + auth_ctx->access_token = NULL; + auth_ctx->ssh_key_path = NULL; + } else if (ssh_key_path) { + auth_ctx->user = NULL; + auth_ctx->ssh_key_path = ssh_key_path; + if (ssh_passphrase) { + auth_ctx->ssh_passphrase = ssh_passphrase; + } + auth_ctx->password = NULL; + auth_ctx->access_token = NULL; + } else if (client_cert_key_path && client_cert_path) { + auth_ctx->user = NULL; + auth_ctx->password = NULL; + auth_ctx->access_token = NULL; + auth_ctx->ssh_key_path = NULL; + auth_ctx->client_cert_key_path = client_cert_key_path; + auth_ctx->client_cert_path = client_cert_path; + } else { + fprintf(stderr, "Artifactory authentication is not configured:\n"); + fprintf(stderr, "set OMC_JF_USER and OMC_JF_PASSWORD\n"); + fprintf(stderr, "or, set OMC_JF_ACCESS_TOKEN\n"); + fprintf(stderr, "or, set OMC_JF_SSH_KEY_PATH and OMC_JF_SSH_KEY_PASSPHRASE\n"); + fprintf(stderr, "or, set OMC_JF_CLIENT_CERT_KEY_PATH and OMC_JF_CLIENT_CERT_PATH\n"); + return -1; + } + return 0; +} + int jfrog_cli(struct JFRT_Auth *auth, char *args) { struct Process proc; char cmd[OMC_BUFSIZ]; |