Coder Social home page Coder Social logo

achrafelkhnissi / alx-checker Goto Github PK

View Code? Open in Web Editor NEW
48.0 1.0 9.0 571 KB

A checker for all alx-low_level_programming projects.

Home Page: https://www.linkedin.com/in/achrafelkhnissi/

Makefile 0.86% CMake 1.28% C++ 92.84% Shell 4.89% Dockerfile 0.13%
alx alx-africa alx-curriculum alx-low-level-programming alx-system-engineering alx-challenge alx-higher-level-programming alx-holberton-software-engineering alx-school

alx-checker's Introduction

ALX CHECKER (DROPPED)!

About

This repository contains a checker created for the ALX Low-Level Programming course projects. The checker are designed to automate the checking process and ensure that the projects meet the requirements of the course. The checker cover various aspects of the projects, such as coding style, syntax, and expected output. The repository is a useful tool for ALX students to ensure that their projects are up to the standard required by the course.


Pre-release First Look

Note: N/A stands for Not Applicable and means that:

  • The requirement is not applicable to the task.
  • The output is random and can't be checked.

Installation

To install the alx-checker tool, simply copy the following command and paste it into your terminal:

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/achrafelkhnissi/alx-checker/main/install.sh)"

This command will download and run the install.sh script from this GitHub repository, which will install all necessary dependencies and configure the tool for use.

  • sudo is used to install the tool in the system directory, so that it can be used by any user on the system.
    • If you do not have sudo installed, you can install it by running apt-get install sudo in your terminal.
    • Note: sudo is needed in order to install Betty, the ALX coding style checker.
    • If you already have Betty installed on your system you can remove the sudo command from the above command.
  • bash is used to run the script.
    • The -c option specifies that the following argument should be treated as a command to execute.
  • curl is used to download the script from GitHub.
    • If you do not have curl installed, you can install it by running apt-get install curl in your terminal.
    • If you don't want to install curl you can download the script manually and run it.
    • The -fsSL options are used to download the script without displaying any progress bar
      • -f - Fail silently (no output at all) on server errors.
      • -s - Silent mode. Don't show progress meter or error messages.
      • -S - Show error. With -s, make curl show errors when they occur.
      • -L - If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option will make curl redo the request on the new place.

Requirements

  • Clang 5.0 and later

Author

  • @achrafelkhnissi | Software Engineer Student

    Reach out to me if you need any help or have any questions.

    Feel free to contact me * Linkedin Profile * Twitter Profile * Discord Profile

Alx Projects

TODO

  • While installing Betty in 1337 iMac, Find a way to install it without using sudo

  • Tell the user to run the script using sudo if it fails to install Betty

  • Handle multiple flags

  • Add update functionality to the checker

  • Make the script installable with apt-get and brew (check checkinstall) - guide

  • Reform the code to c++11 instead of c++17

  • Make the output more colorful and beautiful

  • Add a progress bar

  • For each project add 2 directories one for test_files and the other for expected_output

  • Install libc6-dev-i386 for 32-bit compilation in 0x00 task 6

  • Docker file to run the checker in a container (check Link Link Link)

    • Try sudo dockerd --data-root /my/docker/data
  • Handle special files:

    • 0x01-0/1 generates random output
    • 0x03- add any file that doesn't have a main in its name to the compiled list
      • 0x03-1 int i unused variable
    • 0x05-101 find a way test 101-keygen.c

alx-checker's People

Contributors

achrafelkhnissi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

alx-checker's Issues

Some pointers

How are you achraf? great job with the checker, I was going through your code and I would suggest perhaps instead of using exit to terminate the program, how about throwing exceptions and catching them in main to terminate the program, also how about using default member initialization to initialize member variables instead of using the constructor body?

Otherwise it's a wonderful job you're doing, keep it up.

encountering errors with the `declare` command

How are you, El khnissi? it's me again, to fix the above error, for people who have shell environment that do not support the declare command or not having the necessary permissions to run it then they should try using:

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/achrafelkhnissi/alx-checker/main/install.sh)"

Thankyou.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.