Launcher always exits with "ERROR: Config name must not contain upper case characters, spaces or special characters."


(verglor) #1

No matter what any launcher command “./launcher * app” exits with "ERROR: Config name must not contain upper case characters, spaces or special characters. Correct config name and rerun ./launcher."
I always have to comment “exit 1” in this condition… it’s quite annoying…


Update help please
Changing locale in app.yml doesn't install discourse
(Felix Freiberger) #2

Can you post one concrete call to launcher that does this for you?


(verglor) #3

All calls does it:

./launcher bootstrap app
./launcher start app
./launcher enter app
./launcher rebuild app

The following trimmed script does it too:

#!/bin/bash
re='[A-Z/ !@#$%^&*()+~`=]'
if [[ $1 =~ $re ]];
  then
    echo "ERROR: Config name must not contain upper case characters, spaces or special characters. Correct config name and rerun $0."
fi

(verglor) #4

I believe condition is somehow case insensitive however shopt nocasematch is disabled.
I tried it on clean ubuntu 14.04.3


(OG) #5

I’ve got same problem when testing docker on Ubuntu 14.04.4

root@og:/var/discourse# lsb_release -a
Description:    Ubuntu 14.04.4 LTS

root@og:/var/discourse# ./launcher rebuild app

ERROR: Config name must not contain upper case characters, spaces or special characters. Correct config name and rerun ./launcher.

(verglor) #6

The problem is related to locale.
Everything works as expected until I change the locale.
Try execute this before launcher:

locale-gen sk_SK.UTF-8
export LANG=sk_SK.UTF-8

(Pan Otlet) #7

I had this same problem on CentOS7

localectl set-locale LANG=en_US.utf8

I do this and still don’t work. I have no idea what can i do now? Some ideas?


(Eli the Bearded) #8

Did you also export LANG=en_US.utf8 before running it? The current shell could have it’s own independent idea of locale.

As a separate matter, the test could be rewritten to be less locale sensitive:

#!/bin/bash
re='[^abcdefghijklmnopqrstuvwxyz0123456789_.-]'
if [[  $1 =~ $re ]];
  then
      echo "ERROR: Config name must not contain upper case characters, spaces or special characters. Correct config name and rerun $0."
fi

But maybe people wanted [configname] to work…