From bf3988257753ee0fb5699ee0f7c500c06ff92e46 Mon Sep 17 00:00:00 2001 From: Federico Guerinoni Date: Fri, 28 Aug 2020 15:39:23 +0200 Subject: [PATCH 1/6] Move binary in /usr/bin This fix #234, in this way the path for service is /usr/bin and during script of installation will be moved in that path. Signed-off-by: Federico Guerinoni --- arduino-connector.sh | 10 +++++----- install.go | 5 +---- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/arduino-connector.sh b/arduino-connector.sh index 53eb1c6e..4a7e3586 100755 --- a/arduino-connector.sh +++ b/arduino-connector.sh @@ -3,7 +3,7 @@ # # This file is part of arduino-connector # -# Copyright (C) 2017-2018 Arduino AG (http://www.arduino.cc/) +# Copyright (C) 2017-2020 Arduino AG (http://www.arduino.cc/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -71,18 +71,18 @@ fi echo download connector echo --------- download https://downloads.arduino.cc/tools/feed/arduino-connector/arduino-connector -chmod +x arduino-connector +sudo mv arduino-connector /usr/bin/arduino-connector +sudo chmod +x /usr/bin/arduino-connector echo install connector echo --------- if [ "$password" == "" ] then - sudo -E ./arduino-connector -register -install + sudo -E arduino-connector -register -install else - echo $password | sudo -kS -E ./arduino-connector -register -install > arduino-connector.log 2>&1 + echo $password | sudo -kS -E arduino-connector -register -install > arduino-connector.log 2>&1 fi - echo start connector service echo --------- if [ "$password" == "" ] diff --git a/install.go b/install.go index 3029360e..0adb05a9 100644 --- a/install.go +++ b/install.go @@ -42,7 +42,6 @@ import ( "github.com/arduino/arduino-connector/auth" mqtt "github.com/eclipse/paho.mqtt.golang" "github.com/facchinm/service" - "github.com/kardianos/osext" "github.com/pkg/errors" ) @@ -351,14 +350,12 @@ func (p *program) Stop(s service.Service) error { // createService returns the servcie to be installed func createService(config Config, configFile, listenFile string) (service.Service, error) { - workingDirectory, _ := osext.ExecutableFolder() - svcConfig := &service.Config{ Name: "ArduinoConnector", DisplayName: "Arduino Connector Service", Description: "Cloud connector and launcher for IoT devices.", Arguments: []string{"-config", configFile}, - WorkingDirectory: workingDirectory, + WorkingDirectory: "/usr/bin", Dependencies: []string{"network-online.target"}, } From ca0bd5f62d29872ebb19c176836bdae61d61c2e7 Mon Sep 17 00:00:00 2001 From: Federico Guerinoni Date: Wed, 16 Sep 2020 18:57:54 +0200 Subject: [PATCH 2/6] Fix script for arm platform Signed-off-by: Federico Guerinoni --- arduino-connector-arm.sh | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/arduino-connector-arm.sh b/arduino-connector-arm.sh index 83f0ebb6..8f05f3e6 100644 --- a/arduino-connector-arm.sh +++ b/arduino-connector-arm.sh @@ -1,5 +1,23 @@ #!/bin/bash -e +# +# This file is part of arduino-connector +# +# Copyright (C) 2017-2020 Arduino AG (http://www.arduino.cc/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + has() { type "$1" > /dev/null 2>&1 return $? @@ -53,19 +71,18 @@ fi echo download connector echo --------- download https://downloads.arduino.cc/tools/feed/arduino-connector/arduino-connector-arm -mv arduino-connector-arm arduino-connector -chmod +x arduino-connector +sudo mv arduino-connector-arm /usr/bin/arduino-connector +sudo chmod +x /usr/bin/arduino-connector echo install connector echo --------- if [ "$password" == "" ] then - sudo -E ./arduino-connector -register -install + sudo -E arduino-connector -register -install else - echo $password | sudo -kS -E ./arduino-connector -register -install > arduino-connector.log 2>&1 + echo $password | sudo -kS -E arduino-connector -register -install > arduino-connector.log 2>&1 fi - echo start connector service echo --------- if [ "$password" == "" ] From 7ff9a69b4e2913fbd05b04e57d5bfa4a6e566685 Mon Sep 17 00:00:00 2001 From: Fabio Falzoi Date: Thu, 17 Sep 2020 14:14:04 +0200 Subject: [PATCH 3/6] Fix working directory path Signed-off-by: Fabio Falzoi --- arduino-connector-arm.sh | 2 +- arduino-connector.sh | 2 +- install.go | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/arduino-connector-arm.sh b/arduino-connector-arm.sh index 8f05f3e6..13bb9c32 100644 --- a/arduino-connector-arm.sh +++ b/arduino-connector-arm.sh @@ -50,7 +50,7 @@ echo --------- echo remove old files echo --------- -rm -f arduino-connector* certificate* +rm -f /usr/bin/arduino-connector* /usr/bin/certificate* echo uninstall previous installations of connector echo --------- diff --git a/arduino-connector.sh b/arduino-connector.sh index 4a7e3586..a3d2c346 100755 --- a/arduino-connector.sh +++ b/arduino-connector.sh @@ -50,7 +50,7 @@ echo --------- echo remove old files echo --------- -rm -f arduino-connector* certificate* +rm -f /usr/bin/arduino-connector* /usr/bin/certificate* echo uninstall previous installations of connector echo --------- diff --git a/install.go b/install.go index 0adb05a9..3029360e 100644 --- a/install.go +++ b/install.go @@ -42,6 +42,7 @@ import ( "github.com/arduino/arduino-connector/auth" mqtt "github.com/eclipse/paho.mqtt.golang" "github.com/facchinm/service" + "github.com/kardianos/osext" "github.com/pkg/errors" ) @@ -350,12 +351,14 @@ func (p *program) Stop(s service.Service) error { // createService returns the servcie to be installed func createService(config Config, configFile, listenFile string) (service.Service, error) { + workingDirectory, _ := osext.ExecutableFolder() + svcConfig := &service.Config{ Name: "ArduinoConnector", DisplayName: "Arduino Connector Service", Description: "Cloud connector and launcher for IoT devices.", Arguments: []string{"-config", configFile}, - WorkingDirectory: "/usr/bin", + WorkingDirectory: workingDirectory, Dependencies: []string{"network-online.target"}, } From 460664e6eeab71e37bbb0fe9a8e907a0457883d9 Mon Sep 17 00:00:00 2001 From: Fabio Falzoi Date: Thu, 17 Sep 2020 16:19:47 +0200 Subject: [PATCH 4/6] Update certificate and binary path Signed-off-by: Fabio Falzoi --- arduino-connector-arm.sh | 2 +- arduino-connector.sh | 2 +- main.go | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arduino-connector-arm.sh b/arduino-connector-arm.sh index 13bb9c32..df1d7fba 100644 --- a/arduino-connector-arm.sh +++ b/arduino-connector-arm.sh @@ -50,7 +50,7 @@ echo --------- echo remove old files echo --------- -rm -f /usr/bin/arduino-connector* /usr/bin/certificate* +sudo rm -f /usr/bin/arduino-connector* /usr/bin/certificate* echo uninstall previous installations of connector echo --------- diff --git a/arduino-connector.sh b/arduino-connector.sh index a3d2c346..d72e5c7c 100755 --- a/arduino-connector.sh +++ b/arduino-connector.sh @@ -50,7 +50,7 @@ echo --------- echo remove old files echo --------- -rm -f /usr/bin/arduino-connector* /usr/bin/certificate* +sudo rm -f /usr/bin/arduino-connector* /usr/bin/certificate* echo uninstall previous installations of connector echo --------- diff --git a/main.go b/main.go index 8cdd4f5f..6159e779 100644 --- a/main.go +++ b/main.go @@ -43,7 +43,7 @@ import ( ) const ( - defaultConfigFile = "./arduino-connector.cfg" + defaultConfigFile = "/usr/bin/arduino-connector.cfg" ) var ( @@ -103,7 +103,7 @@ func main() { flag.StringVar(&config.appName, "appName", "arduino-connector", "") var configFile = flag.String(flag.DefaultConfigFlagname, "", "path to config file") - flag.StringVar(&config.CertPath, "cert_path", "./", "path to store certificates") + flag.StringVar(&config.CertPath, "cert_path", "/usr/bin/", "path to store certificates") flag.StringVar(&config.SketchesPath, "sketches_path", "", "path to store sketches") flag.StringVar(&config.ID, "id", "", "id of the thing in aws iot") flag.StringVar(&config.URL, "url", "", "url of the thing in aws iot") From 5808d0be0ff5cd746ef859111d38f3d229f8bd40 Mon Sep 17 00:00:00 2001 From: Fabio Falzoi Date: Thu, 17 Sep 2020 16:20:10 +0200 Subject: [PATCH 5/6] Add missing flag to avoid crash at startup --- main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/main.go b/main.go index 6159e779..5a7d40a9 100644 --- a/main.go +++ b/main.go @@ -111,6 +111,7 @@ func main() { flag.StringVar(&config.HTTPSProxy, "https_proxy", "", "URL of HTTPS proxy to use") flag.StringVar(&config.ALLProxy, "all_proxy", "", "URL of SOCKS proxy to use") flag.StringVar(&config.AuthURL, "authurl", "https://login.arduino.cc", "Url of authentication server") + flag.StringVar(&config.AuthClientID, "auth_client_id", "", "Authentication client ID") flag.StringVar(&config.APIURL, "apiurl", "https://api2.arduino.cc", "Url of api server") flag.BoolVar(&config.CheckRoFs, "check_ro_fs", false, "Check for Read Only file system and remount if necessary") flag.BoolVar(&debugMqtt, "debug-mqtt", false, "Output all received/sent messages") From 1ece5191340a1d79635b933417df221aa77c04e0 Mon Sep 17 00:00:00 2001 From: Federico Guerinoni Date: Thu, 17 Sep 2020 17:08:30 +0200 Subject: [PATCH 6/6] Change image reference to DockerHub This because GHCR are still buggy, maybe the images is moved under the hood and every pulls fail because unknowk blob. Signed-off-by: Federico Guerinoni --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f176940a..bfcda9cc 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -5,7 +5,7 @@ on: [push, pull_request] jobs: Tests: runs-on: ubuntu-latest - container: ghcr.io/guerinoni/go-docker-mqtt-ubuntu-env:latest + container: guerra1994/go-docker-mqtt-ubuntu-env steps: - name: check out code