Add optional classifier def to deploy cmd 38/11938/1
authorThanh Ha <thanh.ha@linuxfoundation.org>
Mon, 23 Jul 2018 22:45:09 +0000 (18:45 -0400)
committerThanh Ha <thanh.ha@linuxfoundation.org>
Mon, 23 Jul 2018 22:45:11 +0000 (18:45 -0400)
The artifact/maven/content API supports an optional classifier
parameter so add option for it.

Change-Id: Ibf89ac2fb15e7fe289cb76aafad41936b24f3a9f
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
lftools/cli/deploy.py
shell/deploy

index 05e1a60..b2dc1fc 100644 (file)
@@ -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)
 
index 4893f46..41dfe12 100755 (executable)
@@ -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}')