From 9d062437b2222130069f55c887359a5482fea417 Mon Sep 17 00:00:00 2001 From: Devmel Apps Date: Sat, 19 Feb 2022 12:14:53 +0100 Subject: [PATCH] first commit --- .gitignore | 10 + LICENSE | 674 +++++++++++++++++++++++++++++++++++++ README.md | 11 + addons/airsend/Dockerfile | 13 + addons/airsend/config.yaml | 16 + addons/airsend/icon.png | Bin 0 -> 28025 bytes addons/airsend/run.sh | 13 + icons/icon.png | Bin 0 -> 28025 bytes install | 74 ++++ 9 files changed, 811 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 addons/airsend/Dockerfile create mode 100644 addons/airsend/config.yaml create mode 100644 addons/airsend/icon.png create mode 100644 addons/airsend/run.sh create mode 100644 icons/icon.png create mode 100644 install diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..23d241c --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +nbproject/ +plugins +sftp-config.json +.project +.DS_Store +Thumbs.db +*.pyc +docs/_site/ +docs/Gemfile.lock +docs/.sass-cache/ \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..94a9ed0 --- /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..74e704d --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +App icon + +# AirSend Home Assistant + +Home Assistant Addon to control an AirSend device in a local network. + +## Installation + +1. Into the terminal, run `wget -q -O - https://raw.githubusercontent.com/devmel/hass_airsend-addon/master/install | bash -` + OR copy the `airsend` folder into your [addon folder](https://developers.home-assistant.io/docs/creating_integration_file_structure/#where-home-assistant-looks-for-integrations). +2. In Supervisor -> Add-on store -> Local add-ons, refresh, install and start AirSend addon diff --git a/addons/airsend/Dockerfile b/addons/airsend/Dockerfile new file mode 100644 index 0000000..68d4717 --- /dev/null +++ b/addons/airsend/Dockerfile @@ -0,0 +1,13 @@ +ARG BUILD_FROM +FROM $BUILD_FROM + +# Copy data for add-on +COPY run.sh / +RUN chmod a+x /run.sh + +# Install AirSendWebService +# RUN mkdir -p /home && cd /home && wget http://devmel.com/dl/AirSendWebService.tgz && (gzip -dc AirSendWebService.tgz | tar -xvzf -) && chmod -R 777 bin +RUN mkdir -p /home && cd /home && wget http://devmel.com/dl/AirSendWebService.tgz && tar -zxvf AirSendWebService.tgz && chmod -R 777 bin + +# Start AirSendWebService +CMD [ "/run.sh" ] diff --git a/addons/airsend/config.yaml b/addons/airsend/config.yaml new file mode 100644 index 0000000..11745cb --- /dev/null +++ b/addons/airsend/config.yaml @@ -0,0 +1,16 @@ +name: "AirSend" +description: "AirSend Web Service" +version: "1.0" +slug: "airsend" +url: https://github.com/devmel/hass_airsend-addon +arch: + - aarch64 + - amd64 + - armhf + - armv7 + - i386 +startup: services +ports: + 33863/tcp: null +ports_description: + 33863/tcp: AirSendWebService communication diff --git a/addons/airsend/icon.png b/addons/airsend/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7280984c2354bb436a9ac93beeb45cde4cc4467a GIT binary patch literal 28025 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/dev/null 2>&1 + + info "Removing hass_airsend zip file..." + rm "$haPath/hass_airsend-addon.zip" + info "Installation complete." + echo + info "Remember to install and start airsend addon in Supervisor -> Add-on store -> Local add-ons" + +else + echo + error "Could not find the directory for Home Assistant addons" false + echo "Manually change the directory to the root of your Home Assistant configuration" + echo "With the user that is running Home Assistant" + echo "and run the script again" + exit 1 +fi