deploy version that fixes bug for many users

This commit is contained in:
Mentor
2025-06-26 11:24:02 +02:00
parent d30344f5b5
commit 4e48feaa8f
2 changed files with 29 additions and 10 deletions

View File

@@ -21,6 +21,7 @@ const exec_async_no_timeout = command => new Promise( ( resolve, reject ) => {
if( error ) return reject( error, stderr, stdout )
if( stderr ) return reject( stderr )
if( stdout ) return resolve( stdout )
if( !stdout ) return resolve( '' )
} )
@@ -44,6 +45,7 @@ const exec_sudo_async = command => new Promise( ( resolve, reject ) => {
if( error ) return reject( error, stderr, stdout )
if( stderr ) return reject( stderr )
if( stdout ) return resolve( stdout )
if( !stdout ) return resolve( '' )
} )
@@ -110,6 +112,11 @@ const disable_battery_limiter = async () => {
}
const low_err_return_false = ( ...errdata ) => {
log( 'Error in shell call: ', ...errdata )
return false
}
const initialize_battery = async () => {
try {
@@ -134,17 +141,24 @@ const initialize_battery = async () => {
magsafe_led_in_visudo,
additional_magsafe_led_in_visudo
] = await Promise.all( [
exec_async( `${ path_fix } which battery` ).catch( () => false ),
exec_async( `${ path_fix } which smc` ).catch( () => false ),
exec_async( `${ path_fix } sudo -n /usr/local/bin/smc -k CH0C -r` ).catch( () => false ),
exec_async( `${ path_fix } sudo -n /usr/local/bin/smc -k CH0I -r` ).catch( () => false ),
exec_async( `${ path_fix } sudo -n /usr/local/bin/smc -k ACLC -r` ).catch( () => false ),
exec_async( `${ path_fix } sudo -n /usr/local/bin/smc -k ACLC -w 02` ).catch( () => false )
exec_async( `${ path_fix } which battery` ).catch( low_err_return_false ),
exec_async( `${ path_fix } which smc` ).catch( low_err_return_false ),
exec_async( `${ path_fix } sudo -n /usr/local/bin/smc -k CH0C -r` ).catch( low_err_return_false ),
exec_async( `${ path_fix } sudo -n /usr/local/bin/smc -k CH0I -r` ).catch( low_err_return_false ),
exec_async( `${ path_fix } sudo -n /usr/local/bin/smc -k ACLC -r` ).catch( low_err_return_false ),
exec_async( `${ path_fix } sudo -n /usr/local/bin/smc -k ACLC -w 02` ).catch( low_err_return_false )
] )
const visudo_complete = charging_in_visudo && discharging_in_visudo && magsafe_led_in_visudo && additional_magsafe_led_in_visudo
const visudo_complete = ![ charging_in_visudo, discharging_in_visudo, magsafe_led_in_visudo, additional_magsafe_led_in_visudo ].some( entry => entry === false )
const is_installed = battery_installed && smc_installed
log( 'Is installed? ', is_installed )
log( 'Visudo complete? ', {
charging_in_visudo,
discharging_in_visudo,
magsafe_led_in_visudo,
additional_magsafe_led_in_visudo,
visudo_complete
} )
// Kill running instances of battery
const processes = await exec_async( `ps aux | grep "/usr/local/bin/battery " | wc -l | grep -Eo "\\d*"` )
@@ -162,16 +176,21 @@ const initialize_battery = async () => {
}
// If not installed, run install script
if( !is_installed || !visudo_complete ) {
if( !is_installed ) {
log( `Installing battery for ${ USER }...` )
if( !online ) return alert( `Battery needs an internet connection to download the latest version, please connect to the internet and open the app again.` )
if( !is_installed ) await alert( `Welcome to the Battery limiting tool. The app needs to install/update some components, so it will ask for your password. This should only be needed once.` )
if( !visudo_complete ) await alert( `Battery needs to apply a backwards incompatible update, to do this it will ask for your password. This should not happen frequently.` )
const result = await exec_sudo_async( `curl -s https://raw.githubusercontent.com/actuallymentor/battery/main/setup.sh | bash -s -- $USER` )
log( `Install result success `, result )
await alert( `Battery background components installed successfully. You can find the battery limiter icon in the top right of your menu bar.` )
}
// If visudo entries are incomplete, update
if( !visudo_complete ) {
await alert( `Battery needs to apply a backwards incompatible update, to do this it will ask for your password. This should not happen frequently.` )
await exec_sudo_async( `${ path_fix } battery visudo` )
}
// Recover old battery setting on boot (as we killed all old processes above)
await exec_async( `${ battery } maintain recover` )

View File

@@ -1,6 +1,6 @@
{
"name": "battery",
"version": "1.2.2",
"version": "1.2.3",
"description": "A battery charge limiter for Apple silicon Mac devices",
"main": "main.js",
"build": {