diff --git a/Launch-Scripts/create-shortcut.js b/Launch-Scripts/create-shortcut.js index 33980742f..c306503fe 100644 --- a/Launch-Scripts/create-shortcut.js +++ b/Launch-Scripts/create-shortcut.js @@ -1,6 +1,6 @@ const path = require("path"); const fs = require("fs"); -const { exec } = require("child_process"); +const { exec, execSync } = require("child_process"); const os = require("os"); // Get the name of the main directory @@ -92,7 +92,45 @@ if (os.platform() == "win32") { // Mac Shortcuts } else if (os.platform() == "darwin") { - console.log( "Automatic shortcut creation is not yet supported on Mac. If you would like to see this feature add, message @harrellbm on telegram or discord to ask how you can help!") + const icon = path.join( __dirname,"/superalgos.ico"); + const createShortcutCommand = `chmod +x ${name}.command & cp ${name}.command ~/Desktop/${name}.command` + const installFileIconcommand = `npm install fileicon`; + const changeIconCommand = `./node_modules/fileicon/bin/fileicon set ~/Desktop/${name}.command ./Launch-Scripts/superalgos.ico` + const unInstallFileIconcommand = `npm uninstall fileicon`; + + try { + // Create .desktop shortcut file + fs.writeFileSync( `${name}.command`, + `#!/bin/sh + cd ${__dirname} + cd .. + node run + "$SHELL"`, + ); + + // Place shortcut in proper folders + execSync( createShortcutCommand,{ timeout: 30000}) + + // Remove temporary .command file + fs.unlinkSync( `${name}.command` ) + + //Install fileicon utility + execSync(installFileIconcommand, {stdio: 'inherit', timeout: 30000}); + + //change Icon + execSync(changeIconCommand, {stdio: 'inherit', timeout: 30000}); + + //Un-Install fileicon utility + execSync(unInstallFileIconcommand, {stdio: 'inherit', timeout: 30000}); + } catch (error) { + console.log(''); + console.log("There was an error installing a shortcut: "); + console.log(''); + console.log( error ); + return; + } + + console.log("Shortcuts added successfully!"); // Misc Operating System } else { diff --git a/uninstall.js b/uninstall.js index 0203d7e5d..be4c04ab7 100644 --- a/uninstall.js +++ b/uninstall.js @@ -53,5 +53,19 @@ if (os.platform() == "win32") { // Mac Shortcuts } else if (os.platform() == "darwin") { - // Uninstall Mac shortcuts here once they have been added. + // Remove .desktop files + let command = `rm ~/Desktop/${name}.command` + exec( command, + function ( error, stdout ){ + if (error) { + console.log(''); + console.log("There was an error uninstalling shortcuts: "); + console.log(''); + console.log( error ); + return; + } else { + console.log(''); + console.log("Shortcuts have been uninstalled successfully."); + } + }); } \ No newline at end of file