Skip to content

ryftchen/foo

Repository files navigation

foo

 ______   ______     ______
/\  ___\ /\  __ \   /\  __ \
\ \  __\ \ \ \/\ \  \ \ \/\ \
 \ \_\    \ \_____\  \ \_____\
  \/_/     \/_____/   \/_____/

pipeline license

The foo is a personal roadmap for learning programming, like a demo. Its main purpose is to use the C++ language to implement or improve some common basic functions. It also contains detailed comments for easy summary and archive. The goal is to improve programming skills while developing good programming habits.


Status

repository

last commit latest docs

Features

Getting started

  1. Get the code:

    git clone https://github.com/ryftchen/foo.git
  2. Prepare the environment:

    docker-compose -f foo/docker/docker-compose.yml up -d
    docker exec -it -w /workspaces/foo foo_dev /bin/bash

    For environment dependencies and container construction, see the Compose file.

How to build

The build script contains a number of parameters, please use the --help option first for detailed instructions.

./script/build.sh --help
  • Build by default:

    ./script/build.sh

    The binary and the libraries will be created in the ./build directory. Then execute the binary, such as:

    ./build/bin/foo --help

    Configuration information is stored in $HOME/.foo/config/foo.json, and the executed log is also written to $HOME/.foo/log/foo.log.

  • The parameters are provided for building or static analysis. Build with options such as --format, --lint, etc.

How to run

The run script contains a number of parameters, please use the --help option first for detailed instructions.

./script/run.py --help
  • Run all cases by default:

    ./script/run.py

    Also, add the --build option to support building before running. The result of running will also be written to ./.cache/foo_run.log and the analysis will be generated in ./.cache/foo_run.report.

  • The parameters are provided for running or dynamic analysis. Run with options such as --check cov, --check mem, etc.

Documentation

The project documentation can be found on the GitHub Pages. When using local documentation via script, ./document is used as the generation directory.

License

Copyright (c) 2022-2024 ryftchen. Released under the MIT License.