aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-03-04 08:48:28 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-03-04 08:48:28 -0500
commit239330330a8fc49c6806cccdc17a910d23d22952 (patch)
tree0e2a3e2e852cafd718556bb31ab58ffc0968504c /src
parent39861d1872731119795f954acc0412af64cd539d (diff)
downloadstasis-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')
-rw-r--r--src/artifactory.c55
-rw-r--r--src/deliverable.c55
-rw-r--r--src/utils.c56
3 files changed, 74 insertions, 92 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];
diff --git a/src/deliverable.c b/src/deliverable.c
index b935b64..f9c53ba 100644
--- a/src/deliverable.c
+++ b/src/deliverable.c
@@ -1433,59 +1433,6 @@ int delivery_init_artifactory(struct Delivery *ctx) {
return status;
}
-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 delivery_artifact_upload(struct Delivery *ctx) {
int status = 0;
@@ -1493,7 +1440,7 @@ int delivery_artifact_upload(struct Delivery *ctx) {
if (!ctx->deploy[i].files || !ctx->deploy[i].dest) {
break;
}
- jfrt_upload_set_defaults(&ctx->deploy[i].upload_ctx);
+ jfrt_upload_init(&ctx->deploy[i].upload_ctx);
char *repo = getenv("OMC_JF_REPO");
if (repo) {
diff --git a/src/utils.c b/src/utils.c
index 2b4d275..b669e1c 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -69,25 +69,6 @@ int rmtree(char *_path) {
return status;
}
-/**
- * Expand "~" to the user's home directory
- *
- * Example:
- * ~~~{.c}
- * char *home = expandpath("~"); // == /home/username
- * char *config = expandpath("~/.config"); // == /home/username/.config
- * char *nope = expandpath("/tmp/test"); // == /tmp/test
- * char *nada = expandpath("/~/broken"); // == /~/broken
- *
- * free(home);
- * free(config);
- * free(nope);
- * free(nada);
- * ~~~
- *
- * @param _path (Must start with a `~`)
- * @return success=expanded path or original path, failure=NULL
- */
char *expandpath(const char *_path) {
if (_path == NULL) {
return NULL;
@@ -146,13 +127,6 @@ char *expandpath(const char *_path) {
return strdup(result);
}
-/**
- * Strip directory from file name
- * Note: Caller is responsible for freeing memory
- *
- * @param _path
- * @return success=file name, failure=NULL
- */
char *path_basename(char *path) {
char *result = NULL;
char *last = NULL;
@@ -168,12 +142,6 @@ char *path_basename(char *path) {
return result;
}
-/**
- * Return parent directory of file, or the parent of a directory
- *
- * @param path
- * @return success=directory, failure=empty string
- */
char *path_dirname(char *path) {
if (!path) {
return "";
@@ -374,11 +342,18 @@ int git_clone(struct Process *proc, char *url, char *destdir, char *gitref) {
char *git_describe(const char *path) {
- pushd(path);
static char version[NAME_MAX];
FILE *pp;
- pp = popen("git describe --first-parent --always --tags", "r");
+
memset(version, 0, sizeof(version));
+ if (pushd(path)) {
+ return NULL;
+ }
+
+ pp = popen("git describe --first-parent --always --tags", "r");
+ if (!pp) {
+ return NULL;
+ }
fgets(version, sizeof(version) - 1, pp);
strip(version);
pclose(pp);
@@ -387,18 +362,25 @@ char *git_describe(const char *path) {
}
char *git_rev_parse(const char *path, char *args) {
- pushd(path);
static char version[NAME_MAX];
char cmd[PATH_MAX];
FILE *pp;
+ memset(version, 0, sizeof(version));
if (isempty(args)) {
- fprintf(stderr, "git_rev_parse args cannot be empty");
+ fprintf(stderr, "git_rev_parse args cannot be empty\n");
+ return NULL;
+ }
+
+ if (pushd(path)) {
return NULL;
}
+
sprintf(cmd, "git rev-parse %s", args);
pp = popen(cmd, "r");
- memset(version, 0, sizeof(version));
+ if (!pp) {
+ return NULL;
+ }
fgets(version, sizeof(version) - 1, pp);
strip(version);
pclose(pp);