summaryrefslogtreecommitdiffstats
path: root/release
diff options
context:
space:
mode:
authorMartin Borg <martin.borg@enea.com>2018-11-13 12:44:13 +0100
committerMartin Borg <martin.borg@enea.com>2018-11-13 13:04:39 +0100
commitfc6d0f544999d47c67f5d4f525d43e7e1baeba7e (patch)
tree648c960bd0b386d219ff2c6263da7d6cc48892f5 /release
parente8a2bbe4eadb6cc03eb22bfac231970b9e1b94e6 (diff)
downloadel_releases-nfv-access-fc6d0f544999d47c67f5d4f525d43e7e1baeba7e.tar.gz
Add script to copy build artifacts into release structure
copyrc.sh script locates build artifacts in a provided list of directories and copies them into a release structure as defined in RELEASE_CONTENT definition file. Change-Id: I3f2034d7dbfe06492f50ac6fd548fe5ba45988d2 Signed-off-by: Martin Borg <martin.borg@enea.com>
Diffstat (limited to 'release')
-rw-r--r--release/RELEASE_CONTENT11
-rwxr-xr-xrelease/copyrc.sh79
2 files changed, 90 insertions, 0 deletions
diff --git a/release/RELEASE_CONTENT b/release/RELEASE_CONTENT
new file mode 100644
index 0000000..3fb3799
--- /dev/null
+++ b/release/RELEASE_CONTENT
@@ -0,0 +1,11 @@
1# The release structure is defined here as:
2# <path to artifact within build folder>:<destination path in release structure>
3
4# atom-c3000 images
5tmp/deploy/images/atom-c3000/enea-nfv-access-edgelink-netconf-atom-c3000.hddimg:atom-c3000/enea-nfv-access-edgelink-netconf-atom-c3000.hddimg
6
7# xeon-d images
8tmp/deploy/images/xeon-d/enea-nfv-access-edgelink-netconf-xeon-d.hddimg:xeon-d/enea-nfv-access-edgelink-netconf-xeon-d.hddimg
9
10# documentation
11doc/book-enea-nfv-access-guide-intel/book-enea-nfv-access-guide-intel.pdf:Documentation/book-enea-nfv-access-guide-intel.pdf
diff --git a/release/copyrc.sh b/release/copyrc.sh
new file mode 100755
index 0000000..7e9616d
--- /dev/null
+++ b/release/copyrc.sh
@@ -0,0 +1,79 @@
1#!/bin/bash
2
3# This script locates build artifacts in a provided list of directories and copies
4# them into a release structure as defined in a release content definition file.
5
6usage() {
7 cat <<EOF >&2
8
9Usage:
10 $(basename $0) [OPTIONS] -o <output directory> <build directory>...
11
12OPTIONS:
13 -p Print the release structure without creating it
14 -r <file> Set release definition file (default: RELEASE_CONTENT)
15
16EOF
17 exit
18}
19
20RC_def="./RELEASE_CONTENT"
21
22while getopts "o:pr:" name; do
23 case $name in
24 o) RC_dir=$OPTARG ;;
25 r) RC_def=$OPTARG ;;
26 p) print=1 ;;
27 ?) usage ;;
28 esac
29done
30
31if [ ! "$RC_dir" ] && [ ! "$print" ]; then
32 echo "ERROR: Output directory not set"
33 usage
34fi
35
36if [ -d "$RC_dir" ]; then
37 echo "ERROR: Output directory $RC_dir already exists"
38 exit 1
39fi
40
41if [ ! -f "$RC_def" ]; then
42 echo "ERROR: release definition file '$RC_def' does not exist"
43 exit 1
44fi
45
46echo "Release definition: $RC_def"
47echo -e "Output directory: $RC_dir\n"
48
49shift $(( OPTIND - 1 ))
50builddirs=("$@")
51
52while read line; do
53 if [ -z "$line" ] || [[ $line = \#* ]]; then continue; fi
54
55 IFS=: read -r srcfile dstfile _ <<< $line
56
57 if [ ! -z "$print" ]; then
58 echo $RC_dir/$dstfile
59 continue
60 fi
61
62 found=0
63 for srcdir in ${builddirs[@]}; do
64 if [ -f "$srcdir/$srcfile" ]; then
65 found=1
66 mkdir -p "$RC_dir/$(dirname "$dstfile")"
67 cp -Lpv $srcdir/$srcfile $RC_dir/$dstfile
68 break
69 fi
70 done
71
72 if [ "$found" -eq "0" ]; then
73 echo "ERROR: File '$srcfile' not found"
74 exit 1
75 fi
76
77done < $RC_def
78
79echo -e "\nDone, RC directory: $RC_dir"