Skip to content
Bebenlebricolo edited this page Feb 2, 2019 · 9 revisions

Welcome to the FreeMyCode wiki!

This wiki is intended to help you getting started on many FreeMyCode usage aspects, starting from the end-user guide until reaching the more technical aspects of its design. As you may imagine, this tool was developed exclusively on my spare time, mainly because I wanted to learn from C++ concepts and because I needed such a tool at the time I started it. I hope this wiki will provide you with some useful information about how FreeMyCode works, and the way it has been designed.

Disclaimer

Simply bear it mind that FreeMyCode was originally started when I only had very little C++ experience, and it grew more and more complex as I progressed onto my own learning path. If I were to rewrite it some day, I may use other implementations and its architecture will probably be a bit different, however its concepts will remain intact and it behaves as I expect it to as it is (that's a pretty good point!).

FreeMyCode wiki's outline

  • Grab FreeMyCode
  • Or compile it from sources
  • Install FreeMyCode
  • Configure it!
    • Add your own license file
    • Add your own user information
  • Speak with it!
    • Using Python command line frontend
    • Using internal command line tool
  • Run it!

Design discussions

  • Goals of FreeMyCode
  • Concepts behind FreeMyCode
  • Project's architecture
  • How modules work all together? (more detailed)
  • Take the control over FreeMyCode (key entry points)
  • What's next?

Some examples of FreeMyCode output

Here an example drawn from a template Secondary_input.json and the standard Config.json file. You may also find the license notice which I modified a bit to target FreeMyCode software.

/*

------------------
@<FreeMyCode>
FreeMyCode version : 1.0 RC alpha
    Author : bebenlebricolo
    Contributors : 
        Dummy author 1
        Dummy author 2
        Dummy author 3
    License : 
        name : GPLv3
        url : https://www.gnu.org/licenses/quick-guide-gplv3.html
    Organisation : 
        type : Independant
        name : bebenCorp
        url : https://github.com/bebenlebricolo
    Date : 30/04/2018
    Custom Tag 1 : Hello World
    Custom Tag 2 : My Super Duper Cool coffee
    Custom Tag 3 : I want more tags!!!
<FreeMyCode>@
------------------

FreeMyCode is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.
*/


// Note: this is actually the real command_line_parser.h 
// header used in FreeMyCode sources ;)

#ifndef COMMAND_LINE_PARSER_HEADER
#define COMMAND_LINE_PARSER_HEADER

#include <vector>
#include <string>
#include <iostream>

// Some super code later ...