Open niloct opened 3 years ago
Well I've figured the parts out.
TL;DR: you have to set an environment variable called EXERCISM_CONFIG_HOME
to value ~/.config/exercism
before you use the exercism configure
command.
In the end it doesn't matter if you have or not an existing workspace.
As said above, to fix this you have to define an environment variable with an appropriate value. Then exercism recognizes your token no matter in which directory you use exercism.
If you don't do this, there is a current behavior which seems a bug: it creates a ~/.config/exercism
directory inside the current directory in which you called exercism configure
.
So this leads to DOZENS of replications of the configuration directory, placed on each challenge directory every time you need to interact with the API. Let's see:
First we destroy the env variable and configuration dir previously set here
~ $ export
[...]
declare -x EXERCISM_CONFIG_HOME="/Users/teixeira/.config/exercism/"
~ $ unset EXERCISM_CONFIG_HOME
~ $ rm -rf ~/.config/exercism/
~ $ cd '~'
-bash: cd: ~: No such file or directory
(There is no extraneous '~' directory inside our home directory)
Then we "configure" exercism
~ $ exercism configure --token 435****************7 --workspace=/Users/teixeira/Exercism/
You have configured the Exercism command-line client:
Config dir: ~/.config/exercism
Token: (-t, --token) 435****************7
Workspace: (-w, --workspace) /Users/teixeira/Exercism
API Base URL: (-a, --api) https://api.exercism.io/v1
Now the bad behavior: it created a whole nested duplicated structure inside our home directory
~ $ cd '~'
~/~ $ find .
.
./.config
./.config/exercism
./.config/exercism/user.json
Let's delete this structure, create the environment variable, and resolve
~ $ rm -rf '~'
~ $ export EXERCISM_CONFIG_HOME=~/.config/exercism
Then we configure exercism exactly like before (above)
Then it works!
~ $ cd .config/exercism/
~/.config/exercism $ find .
.
./user.json
~/.config/exercism $ exercism troubleshoot
Troubleshooting Information
===========================
Version
----------------
Current: 3.0.13
Latest: 3.0.13
Operating System
----------------
OS: darwin
Architecture: amd64
Configuration
----------------
Home: /Users/teixeira
Workspace: /Users/teixeira/Exercism
Config: /Users/teixeira/.config/exercism
API key: 4358*****************************657
API Reachability
----------------
GitHub:
* https://api.github.com
* [connected]
* 174.561378ms
Exercism:
* https://api.exercism.io/v1/ping
* [connected]
* 1.055849818s
If you are having trouble please file a GitHub issue at
https://github.com/exercism/exercism.io/issues and include
this information.
I'm on MacOs Mojave, and things used to work months ago when I was using this cli.
Now, it seems that, when you set an workspace, and execute
exercism troubleshoot
, it only recognizes the token when you are in the directory that you issued theexercism configure
command. See:So token was recognized ok. Now if I cd into a subdir:
Not configured!
The workaround is to call
exercism configure
inside EVERY single challenge directory, so it creates a~/.config
structure and recognizes the token, but this is broken and didn't work like that before.....Thanks for your attention.