Giter VIP home page Giter VIP logo

o3c's Introduction


O3C
O3C - OpenCore Config Checker

O3C validates OpenCore config.plist files by marking individual properties of the config.plist with colored flags.

How it works

When the user uploads their config.plist file, O3C uses the plistParser module to parse the data from the config.plist file. The plistParser module extracts the relevant data from the config.plist file and returns it as a JavaScript object.

plistParser also checks the validity of certain properties in the config.plist file by comparing them with the values listed in <version>.plist file, where <version> refers to the specific OpenCore version being used. If a property is missing from the config.plist file, plistParser adds it to an array of missing properties, which is returned to Viewer.jsx and rendered on top of the validation results.

The <version>.plist file has custom tags, which can be a sequence of possible CPU arch values concatenated. For example:

<key>DummyPowerManagement</key>
<false/>
<amdfxamdzen>
    <true/>
</amdfxamdzen>

Here if the selected CPU arch doesn't match amdfx or amdzen in <amdfxamdzen>, plistParser skips this tag, and the previous one is evaluated (<false/>).

Custom tags and Properties

In addition to the standard properties that are found in the config.plist, O3C supports custom tags and properties to provide additional flexibility. These tags and properties are defined in the comments.plist and <version>.plist files located in the public directory, where <version> refers to the specific OpenCore version being used.

Some of the custom tags that are used by O3C include:

  • bold: Used to display text in bold font
  • link: Used to display text as a hyperlink
  • intelprd: Used to display text for a specific CPU architecture

Custom properties can hold an array of possible values (mostly string values) so that the user hasn't set them to an invalid value. For example:

<key>SystemMemoryStatus</key>
<array>
    <string>Auto</string>
    <string>Upgradable</string>
    <string>Soldered</string>
</array>

Custom tags are used in the comments.plist to provide additional customization options but they can also be used conditionally, based on the selected CPU architecture and property value. For example:

<key>AppleXcpmCfgLock</key>
<dict>
    <key status="correct">YES</key>
    <string>If CFG-Lock is disabled in BIOS, you can disable this quirk.</string>
    <intelprd status="warning">
        <string>CFG-Lock is not present on Intel Penryn, so there's no need for this quirk to be enabled.</string>
    </intelprd>
</dict>

In this example, O3C will only show comments that apply to the selected architecture and only if the property value is set to "YES" (true).

Setup

To run O3C on your machine, follow these steps:

  1. Install Node.js if you haven't already.
  2. Clone this repository by running git clone https://github.com/velickovicdj/O3C.git in your terminal.
  3. Navigate to the root directory of the cloned repository.
  4. Run npm install to install the required dependencies.
  5. Run npm start to start the app in development mode.
  6. Open http://localhost:3000 in your browser to view the app.

To build the app, simply run npm build in your terminal.

Contributing and Feedback

If you encounter any issues with O3C or have suggestions for improving it, please feel free to submit an issue on GitHub or contact me directly at [email protected].

Your feedback is greatly appreciated and helps make O3C better for everyone. Contributions, such as code improvements or new features, are also welcomed and greatly appreciated.

Thank you for using O3C!

o3c's People

Contributors

dependabot[bot] avatar velickovicdj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

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.