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/utils.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/utils.c')
-rw-r--r-- | src/utils.c | 56 |
1 files changed, 19 insertions, 37 deletions
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); |