bmx-routing / bmx7

BMX7 / SEMTOR Securely Entrusted Mesh Routing Protocol
GNU General Public License v2.0
63 stars 15 forks source link

Command Line arguments refactor #49

Closed luserx0 closed 5 months ago

luserx0 commented 5 years ago

Currently, BMX7 uses the ODI interface (as can be seen here), with which per every single file of .c code near the end we find the options handling.

To me this seems overly complicated for two reasons:

  1. The command line argument options stretch out and around all of bmx7's code base which makes difficult to administer
  2. There is no conformity among the options and/or instructions on how to add/remove them

On the other hand, with this approach every single option can be covered in a single line at a specific place and the handling of hierarchy among options is automagically taken care of.

@axn Do you have any ideas on how to begin simplifying options bit by bit?

Another aspect of the command line options is that they are complicated for a simple user. I'm not sure how much of a super user a bmx7 node administrator or user must be, but we should definitely have two modus operandi. One on auto-pilot and one on god-mode.

@aparcar Suggestions on what can be automated?

axn commented 5 years ago

I do not have a good idea that would not sacrifice the power of these options. For coders this should not be too complex. For users there is a field to hide the advanced ones. Help and verbose help texts could of course be optimized

Am 25. August 2019 18:48:25 MESZ schrieb LX0 notifications@github.com:

Currently, BMX7 uses the ODI interface (as can be seen here), with which per every single file of .c code near the end we find the options handling.

To me this seems overly complicated for two reasons:

  1. The command line argument options stretch out and around all of bmx7's code base which makes difficult to administer
  2. There is no conformity among the options and/or instructions on how to add/remove them

On the other hand, with this approach every single option can be covered in a single line at a specific place and the handling of hierarchy among options is automagically taken care of.

@axn Do you have any ideas on how to begin simplifying options bit by bit?

Another aspect of the command line options is that they are complicated for a simple user. I'm not sure how much of a super user a bmx7 node administrator or user must be, but we should definitely have two modus operandi. One on auto-pilot and one on god-mode.

@aparcar Suggestions on what can be automated?

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/bmx-routing/bmx7/issues/49

-- Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.

axn commented 5 months ago

Looking over this request again I find it particularly convenient to have IP related options in the ip.c code file. Closing the issue unless new arguments come up.