UNPKG

2.81 kBapplication/x-shView Raw
1#!/bin/bash
2
3print_usage(){
4 echo "Usage: env .. ./build"
5 echo "Enviroment:"
6 echo " PACKAGER_CONNECTOR=<connector-name>"
7 echo " PACKAGER_TAG=<tag>"
8 echo " PACKAGER_OS=<os-name>"
9 echo " PACKAGER_ARCH=<os-arch>"
10 echo "./build.sh"
11}
12
13bundle_connector(){
14 echo "### bundling connector..."
15 local connector="$1"
16 local tag="$2"
17 local platform="$3"
18 local node_version="$4"
19 local filename="${platform}.bundle.tar.gz"
20 pushd "deploy/raw" > /dev/null
21 tar -zcf "../${connector}/latest/$filename" ./
22 popd > /dev/null
23 cp "deploy/${connector}/latest/$filename" "deploy/${connector}/${tag}"
24}
25
26clean_start(){
27 echo "### cleaning..."
28 rm -rf ./deploy
29}
30
31clean_end(){
32 echo "### cleaning up"
33 rm -rf ./deploy/raw
34}
35
36convert_travis_os_to_platform(){
37 local platform="$1"
38 if [ "$platform" == "osx" ]; then
39 echo "darwin"
40 exit 0
41 fi
42 echo "$platform"
43}
44
45create_directories(){
46 echo "### creating deploy directories"
47 local connector="$1"
48 local tag="$2"
49 mkdir -p "deploy/raw"
50 mkdir -p "deploy/${connector}/latest"
51 mkdir -p "deploy/${connector}/${tag}"
52}
53
54download_connector_ignition(){
55 echo "### download ignition script"
56 local platform="$1"
57 local tools_uri="https://meshblu-connector.octoblu.com/tools"
58 curl -sL "$tools_uri/go-meshblu-connector-ignition/latest/meshblu-connector-ignition-$platform" -o start
59 chmod +x start
60}
61
62move_connector_to_deploy(){
63 echo "### moving to deploy folder"
64 local connector="$1"
65 local tag="$2"
66 rsync -avq * "deploy/raw" --exclude deploy --exclude "./.*"
67}
68
69verify_platform() {
70 local platform="$1"
71
72 local pattern='^(darwin-386|darwin-amd64|windows-386|windows-amd64|linux-386|linux-amd64)$'
73 if ! [[ "$platform" =~ $pattern ]]; then
74 echo "Invalid platform type, $platform"
75 echo "Must be one of ['darwin-386', 'darwin-amd64', 'windows-386', 'windows-amd64', 'linux-386', 'linux-amd64']"
76 exit 1
77 fi
78}
79
80main() {
81 if [ "$1" == "--help" -o "$1" == "-h" -o "$1" == "help" -o "$1" == "-?" ]; then
82 print_usage
83 exit 1
84 fi
85
86 local connector="$PACKAGER_CONNECTOR"
87 local tag="$PACKAGER_TAG"
88 local os="$PACKAGER_OS"
89 local arch="$PACKAGER_ARCH"
90
91 if [ -z "$connector" ]; then
92 print_usage
93 echo "Missing connector"
94 exit 1
95 fi
96
97 if [ -z "$tag" ]; then
98 print_usage
99 echo "Missing tag"
100 exit 1
101 fi
102
103 if [ -z "$os" ]; then
104 print_usage
105 echo "Missing operating system"
106 exit 1
107 fi
108
109 if [ -z "$arch" ]; then
110 print_usage
111 echo "Missing arch"
112 exit 1
113 fi
114
115 local platform="${os}-${arch}"
116
117 verify_platform "$platform"
118
119 clean_start
120 download_connector_ignition "$platform"
121 create_directories "$connector" "$tag"
122 move_connector_to_deploy "$connector" "$tag"
123 bundle_connector "$connector" "$tag" "$platform"
124 clean_end
125 echo "### done"
126}
127
128main $@