From 890469710d50ce84f3da9bc3f695e576505158de Mon Sep 17 00:00:00 2001 From: Thanh Ha Date: Mon, 23 Jul 2018 18:45:09 -0400 Subject: [PATCH] Add optional classifier def to deploy cmd The artifact/maven/content API supports an optional classifier parameter so add option for it. Change-Id: Ibf89ac2fb15e7fe289cb76aafad41936b24f3a9f Signed-off-by: Thanh Ha --- lftools/cli/deploy.py | 5 ++++- shell/deploy | 23 ++++++++++++++++------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/lftools/cli/deploy.py b/lftools/cli/deploy.py index 05e1a606..b2dc1fc1 100644 --- a/lftools/cli/deploy.py +++ b/lftools/cli/deploy.py @@ -56,6 +56,7 @@ def archives(ctx, nexus_url, nexus_path, workspace, pattern): @click.argument('version') @click.argument('packaging') @click.argument('file') +@click.option('-c', '--classifier', default='') @click.pass_context def file(ctx, nexus_url, @@ -64,6 +65,7 @@ def file(ctx, artifact_id, version, packaging, + classifier, file): """Upload file to Nexus as a Maven artifact using cURL. @@ -79,7 +81,8 @@ def file(ctx, artifact_id, version, packaging, - file + file, + classifier ]) sys.exit(status) diff --git a/shell/deploy b/shell/deploy index 4893f460..41dfe120 100755 --- a/shell/deploy +++ b/shell/deploy @@ -766,6 +766,7 @@ upload_maven_file_to_nexus() { # version: Maven style Version to upload artifact as. # packaging: Packaging type to upload as (Eg. tar.xz) # file: File to upload. + # classifier: Maven classifier. (optional) local nexus_url="${1%/}" local nexus_repo_id="$2" @@ -774,16 +775,24 @@ upload_maven_file_to_nexus() { local version="$5" local packaging="$6" local file="$7" + local classifier="${8:-}" + + declare -a params + params+=("-F r=$nexus_repo_id") + params+=("-F g=$group_id") + params+=("-F a=$artifact_id") + params+=("-F v=$version") + params+=("-F p=$packaging") + if [ ! -z "$classifier" ]; then + params+=("-F c=$classifier") + fi + params+=("-F file=@$file") local resp local status - resp=$(curl -s -w " %{http_code}" --netrc -X POST \ - -F "r=$nexus_repo_id" \ - -F "g=$group_id" \ - -F "a=$artifact_id" \ - -F "v=$version" \ - -F "p=$packaging" \ - -F "file=@$file" \ + # We need word splitting here to parse the params + # shellcheck disable=SC2086 + resp=$(curl -s -w " %{http_code}" --netrc -X POST ${params[*]} \ "${nexus_url}/service/local/artifact/maven/content") status=$(echo "$resp" | awk 'END {print $NF}') -- 2.16.6