Sunday, July 14, 2019¶
I reviewed Hamza’s work on getlino and started to dive myself into it.
The challenge is that we have a set of configuration options to be stored in a config file. For each option there is a help text. We want getlino setup to interactively ask for each of these options and then to write the site-wide config file. I keep the door open for a per-user config file though I don’t currently see why this might be good. Maybe on some shared server.
Remove argh dependency and make use of click features
The click package has a prompt keyword for options, but (1) how to disable prompting when –noinput is given? and (2) I would like to use the help texts when prompting. I found this documentation page but no real solution.
Rremoved the projects_prefix option (I don’t see why it is useful)
config files :
support having a system-wide and a per-user file
read them all (if they exist), write only the system conf (only if there is no user conf and after asking user confirmation)
Instead of running sudo for every command, we must run the whole script as root:
sudo pip3 install getlino.
I think that uwsgi is not needed for getlino (it is needed by the env of every site)
added more options
split it into three commands : config, setup and startsite.
My last checkins today use a quite sophisticated approach, but it seems to work as I want. The sophisticated approach seems necessary because we want to have our hard-coded default config values, we want to read and write them from or to the config file, we want to overwrite them via command-line options, and we want to interactively ask for their value. The tricky part was how to define everything in a central place and avoid redundant code.
We cannot say “–noinput” as in Django because for boolean options click
requires a word for both values. I could declare the option using
“–input/–noinput”, but then the name of the variable would be “input”. Okay I
could specify an alternative variable name, e.g.
input_, but that would make
it even more difficult to understand. “batch” seems clear to me.
I also started a page about getlino in the book: getlino.
I am still not finished : the startsite command doesn’t work at all.