Skip to content
Snippets Groups Projects
Commit c044de71 authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

first workking client donwloading a single file

parent a5ce656d
Branches
No related tags found
No related merge requests found
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
line="----------------------------------------------------------------------" line="----------------------------------------------------------------------"
bDebug=0
. $0.cfg . $0.cfg
...@@ -20,27 +21,21 @@ line="----------------------------------------------------------------------" ...@@ -20,27 +21,21 @@ line="----------------------------------------------------------------------"
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
function showhelp(){ function showhelp(){
echo " echo "SYNTAX:
SYNTAX: -d enable debug infos
-s SECRET override secret in IMLCI_PKG_SECRET
-u URL URL of iml ci server without trailing /; overrides env variable IMLCI_URL
-e PHASE phase; overrides env variable IMLCI_PHASE -e PHASE phase; overrides env variable IMLCI_PHASE
-f FILE filename to get; overrides env variable IMLCI_FILE
-o OUTFILE optional output file; default; given filename in current directory
-p PROJECT ci project id; overrides env variable IMLCI_PROJECT -p PROJECT ci project id; overrides env variable IMLCI_PROJECT
-f PROJECT filename; overrides env variable IMLCI_FILE -s SECRET override secret in IMLCI_PKG_SECRET
-u URL URL of iml ci server without trailing /; overrides env variable IMLCI_URL
ACTION:
... without given project and secret
projects show projects
... with project and secret DEFAULTS:
buildinfo [branch] You don't need to set all values by command line. Use a config to set defaults
show infos about what happens on build $0.cfg
build [branch]
execute build
phases show status of phases
EXAMPLES: EXAMPLES:
`basename $0` -u https://ci.example.com -s newsecret [FILE] `basename $0` -u https://ci.example.com -f [FILE]
" "
} }
...@@ -49,9 +44,10 @@ function makeRequest(){ ...@@ -49,9 +44,10 @@ function makeRequest(){
local apiMethod=$1 local apiMethod=$1
local apiRequest=$2 local apiRequest=$2
local secret=$3 local outfile=$3
local secret=$4
local outfile=$( mktemp ) # local outfile=$( mktemp )
echo $line echo $line
echo $apiMethod ${apiHost}${apiRequest} echo $apiMethod ${apiHost}${apiRequest}
...@@ -75,33 +71,30 @@ ${apiTS} ...@@ -75,33 +71,30 @@ ${apiTS}
myHash=`echo -n "$data" | openssl sha1 -hmac "${secret}" | cut -f 2 -d" "` myHash=`echo -n "$data" | openssl sha1 -hmac "${secret}" | cut -f 2 -d" "`
myHash=`echo -n "$myHash" | base64` myHash=`echo -n "$myHash" | base64`
curl \ curl\
-H "Accept: application/json" -H "Content-Type: application/json" \ -H "Accept: application/json" -H "Content-Type: application/json" \
-H "Date: ${apiTS}" \ -H "Date: ${apiTS}" \
-H "Authorization: demo-bash-client:${myHash}" \ -H "Authorization: demo-bash-client:${myHash}" \
-X $apiMethod \ -X $apiMethod \
${IMLCI_URL}${apiRequest} | tee -a $outfile -o "${outfile}.downloading" \
--fail \
${IMLCI_URL}${apiRequest}
if [ $? -eq 0 ]; then
echo Download OK.
mv "${outfile}.downloading" "${outfile}"
ls -l "${outfile}"
else
echo ERROR: Download failed.
# rm -f "${outfile}.downloading"
fi
else else
curl -i \ curl\
-H "Accept: application/json" -H "Content-Type: application/json" \ -H "Accept: application/json" -H "Content-Type: application/json" \
-X $apiMethod \ -X $apiMethod \
${IMLCI_URL}${apiRequest} | tee -a $outfile -o "${outfile}.downloading" \
${IMLCI_URL}${apiRequest}
fi fi
grep "^HTTP\/" $outfile | head -1 | grep " 200 " >/dev/null
local rccurl=$?
echo $line
echo OUTPUT:
cat $outfile
echo $line
rm -f $outfile
if [ $rccurl -ne 0 ]; then
echo
echo "ERROR: API request failed. CURL request did not get respond status code 200."
exit 4
fi
} }
...@@ -121,50 +114,43 @@ fi ...@@ -121,50 +114,43 @@ fi
while getopts "a:b:u:p:e:f:s:" option; do while getopts "de:f:o:p:s:u:" option; do
case ${option} in case ${option} in
a) d) bDebug=1 ;;
apiAction=$OPTARG e) export IMLCI_PHASE=$OPTARG ;;
;; f) export IMLCI_FILE=$OPTARG ;;
b) o) export IMLCI_OUTFILE=$OPTARG ;;
branch=$OPTARG p) export IMLCI_PROJECT=$OPTARG ;;
;; s) export IMLCI_PKG_SECRET=$OPTARG ;;
u) u) export IMLCI_URL=$OPTARG ;;
export IMLCI_URL=$OPTARG *)
;; echo ERROR: invalid option [${option}]
p) exit 2
export IMLCI_PROJECT=$OPTARG esac
;;
e)
export IMLCI_PHASE=$OPTARG
;;
f)
export IMLCI_FILE=$OPTARG
;;
s)
export IMLCI_PKG_SECRET=$OPTARG
;;
*)
echo ERROR: invalid option [${option}]
exit 2
esac
done done
echo Params: $* test -z ${IMLCI_OUTFILE} && IMLCI_OUTFILE=$IMLCI_FILE
echo "IMLCI_URL = $IMLCI_URL"
echo "IMLCI_PROJECT = $IMLCI_PROJECT"
echo "IMLCI_PHASE = $IMLCI_PHASE"
echo "IMLCI_FILE = $IMLCI_FILE"
echo "IMLCI_PKG_SECRET = $IMLCI_PKG_SECRET"
echo
makeRequest GET "/packages/$IMLCI_PHASE/$IMLCI_PROJECT/$IMLCI_FILE" "$IMLCI_PKG_SECRET" if [ $bDebug = 1 ]; then
echo $line
echo
echo DEBUG INFOS
echo
echo ----- content of $0.cfg
cat $0.cfg 2>/dev/null
echo
echo '----- Params (override config values)'
echo $*
echo
echo ----- used values
echo "IMLCI_URL = $IMLCI_URL"
echo "IMLCI_PKG_SECRET = $IMLCI_PKG_SECRET"
echo "IMLCI_PROJECT = $IMLCI_PROJECT"
echo "IMLCI_PHASE = $IMLCI_PHASE"
echo "IMLCI_FILE = $IMLCI_FILE"
echo "IMLCI_OUTFILE = $IMLCI_OUTFILE"
rc=$? echo
echo fi
echo $line
date
echo rc=$rc
exit $rc makeRequest GET "/packages/$IMLCI_PHASE/$IMLCI_PROJECT/$IMLCI_FILE" "$IMLCI_OUTFILE" "$IMLCI_PKG_SECRET"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment