Is there a way to package/describe an ip in a single file ?
Xilinx offers this possibility through the .xci file : all the ip informations are packed in a single file (after GUI IP customization) and you just have this file to add in your flow through a specific command. Then the tool build all the files requested for the different steps but this is straight foward for the user.
Is there an analog process on Quartus to avoid the classic graphical process ? What is the flow to add IP when you want to have a full command-line flow and limit the number of source files ?
Wouldn't that be the .ip file generated for each ip (and/or .qsys depending on your project)?
I typically only version control those files (and no ip output product), so whenever the workspace is rebuilt, it is done starting with .ip/.qsys.
The compilation of the project is scripted, so I guess it corresponds to what you are trying to do (the script is not mine, so I do not know the details).
From the .ip/.qsys, I also know you can modify parameters from scripts.
However, the project is originally designed using the GUI.
The command to add IP/QSYS files is : "set_global_assignment -name IP_FILE <path_to_ip>.ip" (resp. qsys)
Hope that helps