From 5eacf8ef16817b542fc5b4834d9fecfc9bb6099d Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Fri, 23 May 2025 00:18:25 +0100 Subject: [PATCH] First commit on GH --- LICENSE | 674 +++++++++++++++++++++++++++++++++++++ README.md | 47 +++ images/terminal_output.png | Bin 0 -> 65455 bytes 3 files changed, 721 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 images/terminal_output.png diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program 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 . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..487507a --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +# ESDI +ESDI stands for "ESilva Desktop Interface" iirc, or "rAcElaBs aT hOmE" + +This tool collects data from popular racing simulators (for now), to pass it to +peripherals (or a peripheral, only made one so far). This is the currently +available peripheral: [CDashDisplay](https://github.com/ESilva15/CDashDisplay). + +If anyone finds this project useful for anything at all it would be pretty cool. +My main goal is to learn and have some fun. + +Currently it can read from a `.ibt` file or live telemetry from iRacing. +It can only be ran from the terminal: +`go run . offline -p -i ` +![example output in the terminal](./images/terminal_output.png) + + +or to view the live data: +`go run . live -p ` + + +Games implemented so far: +- [iRacing](https://www.iracing.com/) using the [goirsdk](https://github.com/ESilva15/goirsdk) + +Games being implemented: +- [BeamNG.drive](https://www.beamng.com/game/) using the [gobngsdk](https://github.com/ESilva15/gobngsdk) + +Games to be implemented: +- [Assetto Corsa](https://assettocorsa.gg/) + + +## Roadmap +- [ ] Implement the interface for a data source +- [ ] Finish implementing BeamNG +- [ ] Configuration of the peripherals via ESDI +- [ ] Detection of the display +- [ ] Fuel Calculator +- [ ] LapTime Calculator +- [ ] A very long list useful stuff like flags, position, more info about +other drivers, track conditions and so on so forth +- [ ] Dynamic data packets +- [ ] More roadmap entries +- [ ] Telemetry analysis tool +- [ ] Better user interface + +### Shameless begging +Hey, doesn't hurt to try, its free either way: +[Buy me a coffee!](buymeacoffee.com/ESilva_15) diff --git a/images/terminal_output.png b/images/terminal_output.png new file mode 100644 index 0000000000000000000000000000000000000000..73b52240dcbb6199fd829fde362e07f3f2759f0c GIT binary patch literal 65455 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 literal 0 HcmV?d00001