From 97bd710b866149f64ad9727d216a8d3b768ad25a Mon Sep 17 00:00:00 2001 From: Mentor Date: Tue, 28 Feb 2023 12:19:54 +0100 Subject: [PATCH] First draft --- app/modules/battery.js | 35 ------ app/package.json | 2 +- dist/LICENSE | 280 +++++++++++++++++++++++++++++++++++++++++ dist/README.md | 11 ++ dist/smc | Bin 0 -> 53632 bytes setup.sh | 57 ++++----- update.sh | 10 +- 7 files changed, 324 insertions(+), 71 deletions(-) create mode 100644 dist/LICENSE create mode 100644 dist/README.md create mode 100644 dist/smc diff --git a/app/modules/battery.js b/app/modules/battery.js index dc46c7b..a1cb91e 100644 --- a/app/modules/battery.js +++ b/app/modules/battery.js @@ -76,31 +76,6 @@ const get_battery_status = async () => { } -// Dependency checkers -// const git_installed = async () => exec_async( `${ path_fix } git | grep -q "usage: git"` ).then( () => true ).catch( () => false ) -const is_xcode_installed = async () => { - - const cli_only = await exec_async( `${ path_fix } pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep -q version` ).then( () => true ).catch( () => false ) - const full_xcode = await exec_async( `${ path_fix } xcodebuild -version | grep -q version` ).then( () => true ).catch( () => false ) - - return cli_only || full_xcode - -} - -const install_xcode = async () => { - - - try { - - await exec_async( `${ path_fix } xcode-select --install` ) - - } catch ( e ) { - log( `Error triggering xcode installation: `, e ) - throw new Error( `Error installing xcode: ${ e.message }, please try again` ) - } - -} - /* /////////////////////////////// // Battery cli functions // /////////////////////////////*/ @@ -147,16 +122,6 @@ const initialize_battery = async () => { ] ) log( `Internet online: ${ online }` ) - // Check if xcode build tools are installed - const xcode_installed = await is_xcode_installed() - if( xcode_installed ) log( `Xcode is installed` ) - if( !xcode_installed ) { - - alert( `The Battery tool needs Xcode to be installed, please accept the terms and conditions for installation.` ) - - await install_xcode() - } - // Check if battery is installed const [ battery_installed, diff --git a/app/package.json b/app/package.json index 75c7f80..96d4fb3 100644 --- a/app/package.json +++ b/app/package.json @@ -9,7 +9,7 @@ "dmg": { "writeUpdateInfo": false }, - "compression": "maximum", + "compression": "normal", "extraFiles": { "from": "./assets", "to": "resources", diff --git a/dist/LICENSE b/dist/LICENSE new file mode 100644 index 0000000..e52af0e --- /dev/null +++ b/dist/LICENSE @@ -0,0 +1,280 @@ +GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) 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 +this service 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 make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. 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. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the 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 a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE 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. + + END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/dist/README.md b/dist/README.md new file mode 100644 index 0000000..f97926b --- /dev/null +++ b/dist/README.md @@ -0,0 +1,11 @@ +The binary in this folder was built on an M1 Macbook Pro from [hholtmann/smcFanControl]( https://github.com/hholtmann/smcFanControl ) by running: + +```shell +git clone --depth 1 https://github.com/hholtmann/smcFanControl.git +cd smcFanControl +make +``` + +Running the above command requires xcode to be installed, either fully of trough `xcode-select`. + +The original license of that repository is included here as `./LICENSE`. diff --git a/dist/smc b/dist/smc new file mode 100644 index 0000000000000000000000000000000000000000..9804e67b59710e6074456fd116f3ca0f4ac5ead0 GIT binary patch literal 53632 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 literal 0 HcmV?d00001 diff --git a/setup.sh b/setup.sh index 396a458..da0eedc 100755 --- a/setup.sh +++ b/setup.sh @@ -20,43 +20,39 @@ logfile=$configfolder/battery.log # Ask for sudo once, in most systems this will cache the permissions for a bit sudo echo "šŸ”‹ Starting battery installation" +echo -e "[ 1 ] Superuser permissions acquired." -# Check if git is installed, and if not, install it -if ! which git &> /dev/null; then - echo -e "\n[ 1/10 ] Xcode build tools are not installed, please accept the xcode dialog" - xcode-select --install - if ! which git; then - echo "Build tools not installed, please run this script again" - fi -else - echo -e "\n[ 1/10 ] Xcode build tools are installed, continuing" -fi +batteryfolder="$tempfolder/battery" +echo "[ 2 ] Downloading latest version of battery CLI" +rm -rf $batteryfolder +mkdir -p $batteryfolder +curl -sSL -o $batteryfolder/main.zip https://github.com/actuallymentor/battery/archive/refs/heads/main.zip +unzip $batteryfolder/main.zip -d $batteryfolder +cp -r $batteryfolder/battery-main/* $batteryfolder +rm $batteryfolder/main.zip -echo -e "[ 2/10 ] Superuser permissions acquired." - -# Get smc source and build it -smcfolder="$tempfolder/smc" -echo "[ 3/10 ] Cloning fan control version of smc" -rm -rf $smcfolder -git clone --depth 1 https://github.com/hholtmann/smcFanControl.git $smcfolder &> /dev/null -cd $smcfolder/smc-command -echo "[ 4/10 ] Building smc from source" -make &> /dev/null +## ############### +## OLD APPROACH +## ############### +# # Get smc source and build it +# smcfolder="$tempfolder/smc" +# echo "[ 3/10 ] Cloning fan control version of smc" +# rm -rf $smcfolder +# git clone --depth 1 https://github.com/hholtmann/smcFanControl.git $smcfolder &> /dev/null +# cd $smcfolder/smc-command +# echo "[ 4/10 ] Building smc from source" +# make &> /dev/null # Move built file to bin folder -echo "[ 5/10 ] Move smc to executable folder" +echo "[ 3 ] Move smc to executable folder" sudo mkdir -p $binfolder -sudo mv $smcfolder/smc-command/smc $binfolder +sudo mv dist/smc $binfolder sudo chmod u+x $binfolder/smc -# Write battery function as executable -batteryfolder="$tempfolder/battery" -echo "[ 6/10 ] Cloning battery repository" -git clone --depth 1 https://github.com/actuallymentor/battery.git $batteryfolder &> /dev/null - -echo "[ 7/10 ] Writing script to $binfolder/battery for user $calling_user" +echo "[ 4 ] Writing script to $binfolder/battery for user $calling_user" sudo cp $batteryfolder/battery.sh $binfolder/battery +echo "[ 5 ] Setting correct file permissions" # Set permissions for battery executables sudo chown $calling_user $binfolder/battery sudo chmod 755 $binfolder/battery @@ -76,13 +72,12 @@ sudo chmod 755 $pidfile sudo chown $calling_user $binfolder/battery +echo "[ 6 ] Setting up visudo declarations" sudo bash $batteryfolder/battery.sh visudo -echo "[ 8/10 ] Set up visudo declarations" # Remove tempfiles cd ../.. -echo "[ 9/10 ] Removing temp folder $tempfolder" +echo "[ 7 ] Removing temp folder $tempfolder" rm -rf $tempfolder -echo "[ 10/10 ] Removed temporary build files" echo -e "\nšŸŽ‰ Battery tool installed. Type \"battery help\" for instructions.\n" diff --git a/update.sh b/update.sh index 6b18de5..fb13c58 100644 --- a/update.sh +++ b/update.sh @@ -13,10 +13,12 @@ echo -e "šŸ”‹ Starting battery update\n" # Write battery function as executable -echo "[ 1/3 ] Cloning battery repository" +echo "[ 1 ] Downloading latest battery version" rm -rf $batteryfolder -git clone --depth 1 https://github.com/actuallymentor/battery.git $batteryfolder &> /dev/null -echo "[ 2/3 ] Writing script to $binfolder/battery" +mkdir -p $batteryfolder +curl -sS -o $batteryfolder/battery.sh https://raw.githubusercontent.com/actuallymentor/battery/main/battery.sh + +echo "[ 2 ] Writing script to $binfolder/battery" cp $batteryfolder/battery.sh $binfolder/battery chown $USER $binfolder/battery chmod 755 $binfolder/battery @@ -25,6 +27,6 @@ chmod u+x $binfolder/battery # Remove tempfiles cd rm -rf $tempfolder -echo "[ 3/3 ] Removed temporary folder" +echo "[ 3 ] Removed temporary folder" echo -e "\nšŸŽ‰ Battery tool updated.\n"