UNPKG

2.67 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
36create_directories(){
37 echo "### creating deploy directories"
38 local connector="$1"
39 local tag="$2"
40 mkdir -p "deploy/raw"
41 mkdir -p "deploy/${connector}/latest"
42 mkdir -p "deploy/${connector}/${tag}"
43}
44
45download_connector_ignition(){
46 echo "### download ignition script"
47 local platform="$1"
48 local tools_uri="https://meshblu-connector.octoblu.com/tools"
49 curl -sL "$tools_uri/go-meshblu-connector-ignition/latest/meshblu-connector-ignition-$platform" -o start
50 chmod +x start
51}
52
53move_connector_to_deploy(){
54 echo "### moving to deploy folder"
55 local connector="$1"
56 local tag="$2"
57 rsync -avq * "deploy/raw" --exclude deploy --exclude "./.*"
58}
59
60verify_platform() {
61 local platform="$1"
62
63 local pattern='^(darwin-386|darwin-amd64|windows-386|windows-amd64|linux-386|linux-amd64)$'
64 if ! [[ "$platform" =~ $pattern ]]; then
65 echo "Invalid platform type, $platform"
66 echo "Must be one of ['darwin-386', 'darwin-amd64', 'windows-386', 'windows-amd64', 'linux-386', 'linux-amd64']"
67 exit 1
68 fi
69}
70
71main() {
72 if [ "$1" == "--help" -o "$1" == "-h" -o "$1" == "help" -o "$1" == "-?" ]; then
73 print_usage
74 exit 1
75 fi
76
77 local connector="$PACKAGER_CONNECTOR"
78 local tag="$PACKAGER_TAG"
79 local os="$PACKAGER_OS"
80 local arch="$PACKAGER_ARCH"
81
82 if [ -z "$connector" ]; then
83 print_usage
84 echo "Missing connector"
85 exit 1
86 fi
87
88 if [ -z "$tag" ]; then
89 print_usage
90 echo "Missing tag"
91 exit 1
92 fi
93
94 if [ -z "$os" ]; then
95 print_usage
96 echo "Missing operating system"
97 exit 1
98 fi
99
100 if [ -z "$arch" ]; then
101 print_usage
102 echo "Missing arch"
103 exit 1
104 fi
105
106 local platform="${os}-${arch}"
107
108 verify_platform "$platform"
109
110 clean_start
111 download_connector_ignition "$platform"
112 create_directories "$connector" "$tag"
113 move_connector_to_deploy "$connector" "$tag"
114 bundle_connector "$connector" "$tag" "$platform"
115 clean_end
116 echo "### done"
117}
118
119main $@