Uploaded image for project: 'Help-Desk'
  1. Help-Desk
  2. HELP-19039

FIWARE.Question.Tech.': not a valid identifiert: ` when running bash create command in windows.

    Details

      Description

      Created question in FIWARE Q/A platform on 13-12-2021 at 08:12
      Please, ANSWER this question AT https://stackoverflow.com/questions/70331540/not-a-valid-identifiert-when-running-bash-create-command-in-windows

      Question:
      ': not a valid identifiert: ` when running bash create command in windows

      Description:
      I'm trying to implement this tutorial, but when I try to run "./services create" command in powershell (in windows 10) I get this error :
      ': not a valid identifiert: `
      ': not a valid identifiert: `
      ': not a valid identifiert: `
      ': not a valid identifiert: `
      ': not a valid identifiert: `
      ': not a valid identifiert: `
      ': not a valid identifiert: `
      ': not a valid identifiert: `
      ': not a valid identifiert: `

      I've converted the carriage return in notepad++ (Edit -> EOL conversion -> Unix (LF)) before running the code. before this conversion I was getting this error :
      ./services: line 16: $'\r': command not found
      : invalid option 17: set: -
      set: usage: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]
      ./services: line 18: $'\r': command not found
      ./services: line 30: syntax error near unexpected token `$'{\r''
      '/services: line 30: `loadData () {

      you can also see the bash script here :
      #!/bin/bash
      #

      1. Command Line Interface to start all services associated with the Tutorial
        #
      2. For this tutorial the commands are merely a convenience script to run docker or docker-compose
        #
      3. Each services script can be run using either docker-compose (the external tool with the hyphen -)
      4. or docker compose (the newer version directly bundled with Docker with a space )
        #
      5. if you start up with the following command:
        #
      6. ./services start legacy
        #
      7. This will force the script to use docker-compose which may be more reliable in
      8. some cases (or if an older version of Docker is being used)

      set -e

      dockerCmd="docker compose"
      if (( $# == 2 )); then
      dockerCmd="docker-compose"
      fi

      if (( $# < 1 )); then
      echo "Illegal number of parameters"
      echo "usage: services [create|start|stop]"
      exit 1
      fi

      loadData () {
      docker run --rm -v $(pwd)/import-data:/import-data \
      --network fiware_default \
      -e ORION_PORT="$

      {ORION_PORT}" \
      -e TUTORIAL_APP_PORT="${TUTORIAL_APP_PORT}" \
      --entrypoint /bin/ash curlimages/curl import-data
      waitForIoTAgent
      docker run --rm -v $(pwd)/provision-devices:/provision-devices \
      --network fiware_default \
      -e ORION_PORT="${ORION_PORT}

      " \
      -e TUTORIAL_APP_PORT="$

      {TUTORIAL_APP_PORT}

      " \
      -e TUTORIAL_DUMMY_DEVICE_PORT="$

      {TUTORIAL_DUMMY_DEVICE_PORT}

      " \
      -e IOTA_NORTH_PORT="$

      {IOTA_NORTH_PORT}

      " \
      --entrypoint /bin/ash curlimages/curl provision-devices
      echo ""
      }

      waitForKeyrock () {
      echo -e "⏳ Waiting for \033[1;31mKeyrock\033[0m to be available\n"

      while ! [ `docker inspect --format='.State.Health.Status' fiware-keyrock` == "healthy" ]
      do
      echo -e "Keyrock HTTP state: " `curl -s -o /dev/null -w %

      {http_code} 'http://localhost:3005/version'` " (waiting for 200)"
      sleep 5
      done
      echo -e " \033[1;32mdone\033[0m"
      }

      waitForWirecloud () {
      echo -e "⏳ Waiting for \033[1;35mWirecloud\033[0m to be available\n"

      while [ `curl -s -o /dev/null -w %{http_code}

      'http://localhost:8000/api/features'` -eq 000 ]
      do
      echo -e "Wirecloud HTTP state: " `curl -s -o /dev/null -w %

      {http_code} 'http://localhost:8000/api/features'` " (waiting for 200)"
      sleep 5
      done
      echo -e " \033[1;32mdone\033[0m"
      }

      waitForMongo () {
      echo -e "\n⏳ Waiting for \033[1mMongoDB\033[0m to be available\n"
      while ! [ `docker inspect --format='.State.Health.Status' db-mongo` == "healthy" ]
      do
      sleep 1
      done
      }

      waitForOrion () {
      echo -e "\n⏳ Waiting for \033[1;34mOrion\033[0m to be available\n"

      while ! [ `docker inspect --format='.State.Health.Status' fiware-orion` == "healthy" ]
      do
      echo -e "Context Broker HTTP state: " `curl -s -o /dev/null -w %{http_code}

      'http://localhost:1026/version'` " (waiting for 200)"
      sleep 1
      done
      }

      waitForIoTAgent () {
      echo -e "\n⏳ Waiting for \033[1;36mIoT-Agent\033[0m to be available\n"
      while ! [ `docker inspect --format='.State.Health.Status' fiware-iot-agent` == "healthy" ]

      do
      echo -e "IoT Agent HTTP state: " `curl -s -o /dev/null -w %

      {http_code}

      'http://localhost:4041/version'` " (waiting for 200)"
      sleep 1
      done
      }

      addDatabaseIndex () {
      printf "Adding appropriate \033[1mMongoDB\033[0m indexes for \033[1;34mOrion\033[0m ..."
      docker exec db-mongo mongo --eval '
      conn = new Mongo();db.createCollection("orion");
      db = conn.getDB("orion");
      db.createCollection("entities");
      db.entities.createIndex(

      {"_id.servicePath": 1, "_id.id": 1, "_id.type": 1}

      ,

      {unique: true}

      );
      db.entities.createIndex(

      {"_id.type": 1}

      );
      db.entities.createIndex(

      {"_id.id": 1}

      );' > /dev/null

      docker exec db-mongo mongo --eval '
      conn = new Mongo();db.createCollection("orion-openiot");
      db = conn.getDB("orion-openiot");
      db.createCollection("entities");
      db.entities.createIndex(

      {"_id.servicePath": 1, "_id.id": 1, "_id.type": 1}

      ,

      {unique: true}

      );
      db.entities.createIndex(

      {"_id.type": 1}

      );
      db.entities.createIndex(

      {"_id.id": 1}

      );' > /dev/null
      echo -e " \033[1;32mdone\033[0m"

      printf "Adding appropriate \033[1mMongoDB\033[0m indexes for \033[1;36mIoT-Agent\033[0m ..."
      docker exec db-mongo mongo --eval '
      conn = new Mongo();
      db = conn.getDB("iotagentul");
      db.createCollection("devices");
      db.devices.createIndex(

      {"_id.service": 1, "_id.id": 1, "_id.type": 1}

      );
      db.devices.createIndex(

      {"_id.type": 1}

      );
      db.devices.createIndex(

      {"_id.id": 1}

      );
      db.createCollection("groups");
      db.groups.createIndex(

      {"_id.resource": 1, "_id.apikey": 1, "_id.service": 1}

      );
      db.groups.createIndex(

      {"_id.type": 1}

      );' > /dev/null
      echo -e " \033[1;32mdone\033[0m"
      }

      startContainers () {
      echo ""
      export IDM_HTTPS_ENABLED="$1"
      $

      {dockerCmd} up -d --remove-orphans
      echo ""
      }

      stoppingContainers () {
      CONTAINERS=$(docker ps -aq)
      if [[ -n $CONTAINERS ]]; then
      echo "Stopping containers"
      docker rm -f $CONTAINERS
      fi
      VOLUMES=$(docker volume ls -qf dangling=true)
      if [[ -n $VOLUMES ]]; then
      echo "Removing old volumes"
      docker volume rm $VOLUMES
      fi
      }

      command="$1"
      case "${command}" in
      "help")
      echo "usage: services [create|start|stop]"
      ;;
      "start")
      export $(cat .env | grep "#" -v)
      stoppingContainers
      echo -e "Starting containers: \033[1;34mOrion\033[0m, \033[1;36mIoT-Agent\033[0m, \033[1;31mKeyrock\033[0m, \033[1;35mWirecloud\033[0m, \033[1mTutorial\033[0m"
      echo -e "Along with the following databases: \033[1mMongoDB\033[0m, \033[1mPostGres\033[0m and \033[1mMySQL\033[0m"
      echo -e "and microservices: \033[1mElasticSearch\033[0m, \033[1mMemCache\033[0m and \033[1;35mNGSI Proxy\033[0m\n"
      echo e " \033[1;34mOrion\033[0m is the context broker"
      echo e " \033[1;36mIoT-Agent\033[0m is configured for the UltraLight Protocol"
      echo e " \033[1mTutorial\033[0m acts as a series of dummy IoT Sensors over HTTP"
      echo e " \033[1;31mKeyrock\033[0m is an Identity Management Front-End"
      echo e " \033[1;35mWirecloud\033[0m is a Dashboard Utility"
      echo e " \033[1;35mNGSI Proxy\033[0m creates a server that is capable of redirecting Orion notifications to web pages"
      startContainers false
      waitForMongo
      addDatabaseIndex
      waitForOrion
      loadData
      waitForWirecloud
      waitForKeyrock
      echo -e "Now open \033[4mhttp://localhost:8000\033[0m"
      ;;
      "stop")
      export $(cat .env | grep "#" -v)
      stoppingContainers
      ;;
      "create")
      export $(cat .env | grep "#" -v)
      echo "Pulling Docker images"
      docker pull curlimages/curl
      ${dockerCmd}

      pull
      ;;
      *)
      echo "Command not Found."
      echo "usage: services [create|start|stop]"
      exit 127;
      ;;
      esac

        Activity

        Hide
        backlogmanager Backlog Manager added a comment -

        2021-12-14 05:31|CREATED monitor | # answers= 0, accepted answer= False

        Show
        backlogmanager Backlog Manager added a comment - 2021-12-14 05:31|CREATED monitor | # answers= 0, accepted answer= False
        Hide
        jason.fox Jason Fox added a comment -

        User was attempting to use PowerShell to run Bash commands. They were advised to use a bash shell in the comments.

        Show
        jason.fox Jason Fox added a comment - User was attempting to use PowerShell to run Bash commands. They were advised to use a bash shell in the comments.

          People

          • Assignee:
            jason.fox Jason Fox
            Reporter:
            backlogmanager Backlog Manager
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: