From f706855b5be79e28025ef067ae0e93fab60caa95 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Sat, 7 May 2022 13:31:51 -0400 Subject: [PATCH] Removed old files --- bak/app/css/aether_native_app_v3.css | 28 + bak/app/img/favicon.ico | Bin 0 -> 1626 bytes bak/app/img/osit_logo_100.png | Bin 0 -> 7497 bytes bak/app/img/osit_logo_150.png | Bin 0 -> 9760 bytes bak/app/img/osit_logo_32.png | Bin 0 -> 1626 bytes bak/app/index.html | 223 +++++++ bak/app/js/aether_native_app_v3.js | 552 ++++++++++++++++++ bak/app/static/images/favicon.ico | Bin 0 -> 1626 bytes bak/app/static/images/oneskyit_logo.png | Bin 0 -> 9760 bytes bak/app/static/images/site_background.png | Bin 0 -> 41785 bytes bak/app/static/images/site_background.svg | 1 + bak/app/static/images/site_background.webp | Bin 0 -> 16974 bytes bak/app/static/launcher.reset | 1 + bak/app/static/test.txt | 1 + .../app}/svelte/build/aether_layout.css | 0 .../app}/svelte/build/aether_layout_flow.css | 0 .../app}/svelte/build/aether_layout_grid.css | 0 {app => bak/app}/svelte/build/bundle.css | 0 {app => bak/app}/svelte/build/bundle.js | 0 {app => bak/app}/svelte/build/bundle.js.map | 0 {app => bak/app}/svelte/build/reloading.css | 0 config.json.default.bak | 42 -- 22 files changed, 806 insertions(+), 42 deletions(-) create mode 100644 bak/app/css/aether_native_app_v3.css create mode 100755 bak/app/img/favicon.ico create mode 100644 bak/app/img/osit_logo_100.png create mode 100644 bak/app/img/osit_logo_150.png create mode 100644 bak/app/img/osit_logo_32.png create mode 100644 bak/app/index.html create mode 100644 bak/app/js/aether_native_app_v3.js create mode 100755 bak/app/static/images/favicon.ico create mode 100644 bak/app/static/images/oneskyit_logo.png create mode 100644 bak/app/static/images/site_background.png create mode 100644 bak/app/static/images/site_background.svg create mode 100644 bak/app/static/images/site_background.webp create mode 100644 bak/app/static/launcher.reset create mode 100644 bak/app/static/test.txt rename {app => bak/app}/svelte/build/aether_layout.css (100%) rename {app => bak/app}/svelte/build/aether_layout_flow.css (100%) rename {app => bak/app}/svelte/build/aether_layout_grid.css (100%) rename {app => bak/app}/svelte/build/bundle.css (100%) rename {app => bak/app}/svelte/build/bundle.js (100%) rename {app => bak/app}/svelte/build/bundle.js.map (100%) rename {app => bak/app}/svelte/build/reloading.css (100%) delete mode 100644 config.json.default.bak diff --git a/bak/app/css/aether_native_app_v3.css b/bak/app/css/aether_native_app_v3.css new file mode 100644 index 0000000..d8aff7e --- /dev/null +++ b/bak/app/css/aether_native_app_v3.css @@ -0,0 +1,28 @@ +body { + /* min-height: 100%; + height: 100%; + max-height: 100%; */ + + margin: .1em; + padding: .1em; +} + +section#Main-Body { + /* outline: solid thin red; */ + + /* min-height: 100%; + height: 100%; + max-height: 100%; */ +} + +section#Main-Nav-Menu { + min-height: 100%; + height: 100%; + max-height: 100%; +} + +section#Main-Content { + min-height: 100%; + height: 100%; + max-height: 100%; +} \ No newline at end of file diff --git a/bak/app/img/favicon.ico b/bak/app/img/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..cf4994903e3855b16cff0b2ad17a7c3e66ae59e7 GIT binary patch literal 1626 zcmV-g2BrClP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00gN300gN4SoPiQ00007bV*G`2iyz; z5<4*rqpSx200r7fL_t(o!|j(_h+bC}$A4>|ea?5z+%hvv(#A_{GBI9CZ6Xw_U=vg9 zG#V`wq4Y^fnsy!{eJb`%un$&5siMU3LP^0YeMwN1Rwu@wG-xQ2ASPpiPJ-6h#K}x% zzWKg$+slV@=DUA0ee=Z)n{zmOum4`_zb<rC3&mYu_vwHsW^Vi$tU3swW#5EmN`eLF5lxp4hi!CO(b`s0zjd%|IQ+ zy9y#Kn#~XVZen`xHm_%Vr9iZv0`*>6o~RPO5$^w@^TI$t5h-KKG~;uP1uqKU2p>Fp zHE;O6bJY50!Qr!CCK?BAVM~0sW%2d*Y`$~rVW(>XT8L(KFaa3T#&>g*zcI1z z8ZK=vionWs;l;gQ=~m$I>yI-w`7*ZBm8nsBlb!jcGz-UlX?10u7DswPivohJ-H5OF z_f%?jyxaA83JX^r=SLs?Y10J%?Zv=;kxU^Vlthek_EqHOMbK;qr z8R}Xuo;i$de~zgahMNlPoH~RJwqrcSMsrLf)viWlr)*QX8@{2ra#L@;=PU}zhv;8HMtQ)n$c+$!7S^O+Zpc%>zR zlx3ulQGl$zl+IW71c`~dt#=t1Ti_#Xz!>VMA}j z4#QRqX*DlclU`FumS;J(d$zqFxcrMJnf&B|MryUvmew+c?g$YhWw!KYK~)hWRE90L z{}E#cO!uA~=70NCcSB+WOEeMS`5m4Rs4p3uQ@pp?XQ?Xwphq}ryRh;E;ziqi8%|Em z;91JNZUJ*jxXF@L9qRg9U$7;pQ<9aOaMbq1@_hKfqciOaOrL*AZKTrK>s%XhRe(}w4yAh;kpQ@@DYe-jfyudUS>)3-r zTFnWDie|PKTY@0QN6aYid*q}ch(1Cv@R@a+WDzOKv@c|FA7Bx(L@`0Jx38!OW=WP`VQ}JpL^k+? zkm5qAFHQ6EXMe@rpKH&Fxu4}6{N6(h-TBM5>emkog?RZDi?J^fuS`=J+O^?NOuYOW zwsMMFS8{&;eBNDzqEp1TUnLrQ_-$Za!FWG39J^$R;`!K-+%LT(NFXVtQ(h}W%ik6{y%{K Y0_>udzR@tf*Z=?k07*qoM6N<$f-{T{WB>pF literal 0 HcmV?d00001 diff --git a/bak/app/img/osit_logo_100.png b/bak/app/img/osit_logo_100.png new file mode 100644 index 0000000000000000000000000000000000000000..1dfa88d12a0ea0b5c4582954e6dd05ef539da0f2 GIT binary patch literal 7497 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 TO}#iT00000NkvXXu0mjfb$@SF literal 0 HcmV?d00001 diff --git a/bak/app/img/osit_logo_150.png b/bak/app/img/osit_logo_150.png new file mode 100644 index 0000000000000000000000000000000000000000..64f24870c7c69df27c92adf46d16968ed98b323d GIT binary patch literal 9760 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 Y0_>udzR@tf*Z=?k07*qoM6N<$f-{T{WB>pF literal 0 HcmV?d00001 diff --git a/bak/app/index.html b/bak/app/index.html new file mode 100644 index 0000000..9b6a2aa --- /dev/null +++ b/bak/app/index.html @@ -0,0 +1,223 @@ + + + + + + + One Sky IT's Aether App + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Site-Nav-Menu
+ + + +
System-Notifications (and Site-Notifications)
+ +
+
+ + + + +
System-Debug
+ + + + + + + + + + + + + + + diff --git a/bak/app/js/aether_native_app_v3.js b/bak/app/js/aether_native_app_v3.js new file mode 100644 index 0000000..55faf7e --- /dev/null +++ b/bak/app/js/aether_native_app_v3.js @@ -0,0 +1,552 @@ +'use strict'; +const os = require('os'); +const path = require('path'); +const fs = require('fs'); +const fs_promises = require('node:fs/promises'); +const child_process = require('child_process'); +const { ipcRenderer } = require('electron'); + +// import psList from 'ps-list'; +// const ps_list = require('ps-list'); + +let home_directory = require('os').homedir(); +console.log('Home: '+home_directory); + +let tmp_directory = require('os').tmpdir(); +console.log('Temporary: '+tmp_directory); + +let config = null; + +exports.load_config = function () { + console.log('*** Electron framework: load_config() ***'); + + let cwd = process.cwd(); + console.log(`CWD: ${cwd}`); + + try { + if (cwd == '/') { + cwd = home_directory; + } + console.log('Reading directory...'); + let directory_list = fs_promises.readdir(cwd).then(function (read_dir_result) { + console.log('Got contents:'); + for (let file of read_dir_result) { + console.log(file); + } + }); + } catch (err) { + console.error(err); + } + + // let home_directory = require('os').homedir(); + // console.log('Home: '+home_directory); + + // let tmp_directory = require('os').tmpdir(); + // console.log('Temporary: '+tmp_directory); + + // let config = null; + let config_directory = null; + // let default_config_path = path.join(process.cwd(),'config.json.default'); + let default_config_path = 'config.json.default'; + console.log(default_config_path); + let config_path = null; + + // Set the config path for macOS or Linux + if (os.platform == 'darwin') { + config_directory = path.join(home_directory, 'Library/Application Support/OSIT'); + console.log('macOS config directory: '+config_directory); + } else if (os.platform == 'linux') { + config_directory = path.join(home_directory, '.config/OSIT'); + console.log('Linux config directory: '+config_directory); + } + + // Look for the config file and copy the default if not found. + if (fs.existsSync(config_directory)) { + console.log('Config directory found: '+config_directory); + } else { + fs.mkdirSync(config_directory); + console.log('Config directory created: '+config_directory); + + //default_config_path = path.join(process.cwd(),'config.json.default'); + // config_path = path.join(config_directory, 'config.json'); + // fs.copyFileSync(default_config_path, config_path); + // console.log('Default config file copied: '+config_directory); + } + + config_path = path.join(config_directory, 'config.json'); + + // Attempt to open the config file. The preferred location is based on the OS's config directory. + if (fs.existsSync(config_path)) { + console.log(`Config file (config.json) found under ${config_directory}`); + } else if (!fs.existsSync(config_path) && fs.existsSync(default_config_path)) { + fs.copyFileSync(default_config_path, config_path); + console.log('Default config file copied: '+config_directory); + + // config = JSON.parse(fs.readFileSync(config_path)); + // console.log('Config file read.'); + } else if (fs.existsSync(path.join(cwd, 'config.json'))) { + //fs.copyFileSync(default_config_path, config_path); + //console.log('Default config file copied: '+config_directory); + + console.log(`Config file (config.json) not found under ${config_directory}. Using config in CWD. ${cwd}`); + config_path = path.join(cwd, 'config.json'); + + console.log(`Config file (config.json) not found under ${config_directory}. Using config in CWD. ${cwd}`); + found_config_path = path.join(cwd, 'config.json'); + + fs.copyFileSync(found_config_path, config_path); + console.log(`Found config file copied: ${config_directory}`); + } else if (fs.existsSync(path.join(cwd, 'config.json.default'))) { + console.log(`Config file (config.json) not found under ${config_directory} or CWD. Using default config in CWD. ${cwd}`); + default_config_path = path.join(cwd, 'config.json.default'); + + fs.copyFileSync(default_config_path, config_path); + console.log(`Default config file copied: ${config_directory}`); + } else { + console.log('Can not find a config file.'); + + return false; + } + + config = JSON.parse(fs.readFileSync(config_path)); + console.log('Config file read.'); + + config.home_directory = home_directory; // From the OS platform + config.tmp_directory = tmp_directory; // From the OS platform + + config.app_root_path = config.app_root_path.replace('[home]', home_directory); + config.app_root_path = config.app_root_path.replace('[tmp]', tmp_directory); + console.log(config.app_root_path); + + config.host_file_cache_path = config.host_file_cache_path.replace('[home]', home_directory); + config.host_file_cache_path = config.host_file_cache_path.replace('[tmp]', tmp_directory); + console.log(config.host_file_cache_path); + // if (fs.existsSync(config.host_file_cache_path)) { + // } else { + // fs.mkdirSync(config.host_file_cache_path); + // console.log(`Host file cache directory created: ${config.host_file_cache_path}`); + // } + + config.host_file_temp_path = config.host_file_temp_path.replace('[home]', home_directory); + config.host_file_temp_path = config.host_file_temp_path.replace('[tmp]', tmp_directory); + console.log(config.host_file_temp_path); + // if (fs.existsSync(config.host_file_temp_path)) { + // } else { + // fs.mkdirSync(config.host_file_temp_path); + // console.log(`Host file temp directory created: ${config.host_file_temp_path}`); + // } + + let import_config_to_ipc_result = ipcRenderer.invoke('import_config', config).then((result) => { + console.log('IPC import config finished'); + console.log(result); + return true; + }) + + //console.log(config); + return config; +} + + +// Check for local file +// Updated 2022-05-06 +exports.check_local_file = async function ({local_file_path, filename}) { + console.log('*** Electron framework export: check_local_file() ***'); + // console.log('Check for local file'); + console.log(`Local File Path: ${local_file_path}; Filename: ${filename}`); + + let full_local_file_path = path.join(local_file_path, filename); + console.log(full_local_file_path); + + if (fs.existsSync(full_local_file_path)) { + console.log(`Local file exists: ${full_local_file_path}`); + return true; + } else { + return false; + } +} + + +// Check local hash file cache +// Updated 2022-05-06 +exports.check_hash_file_cache = async function ({host_file_cache_path, hash}) { + console.log('*** Electron framework export: check_hash_file_cache() ***'); + // console.log('Check local hash file cache'); + console.log(`Host File Cache Path: ${host_file_cache_path}; Hash: ${hash}`); + + let hash_filename = `${hash}.file`; + + let subdirectory = hash_filename.substring(0,2); + let subdirectory_path = path.join(host_file_cache_path, subdirectory); + if (fs.existsSync(subdirectory_path)) { + } else { + console.log(`Hashed file subdirectory not found in cache: ${subdirectory_path}`); + return false; + } + + let hash_file_cache_path = path.join(subdirectory_path, hash_filename); + // console.log(hash_file_cache_path); + + if (fs.existsSync(hash_file_cache_path)) { + console.log(`Hashed file exists in cache: ${hash_file_cache_path}`); + return true; + } else { + console.log(`Hashed file not found in cache: ${hash_file_cache_path}`); + return false; + } +} + + +// Download hash file to cache +// Updated 2022-05-06 +exports.download_hash_file_to_cache = async function ({host_file_cache_path, event_file_id=null, hash=null}) { + console.log('*** Electron framework export: download_hash_file_to_cache() ***'); + // console.log('Download hash file to cache'); + console.log(`Host File Cache Path: ${host_file_cache_path}; Event File ID: ${event_file_id}; Hash: ${hash}`); + + let endpoint = `/event/file/${event_file_id}/download`; + + let hash_filename = `${hash}.file`; + + let subdirectory = hash_filename.substring(0,2); + let subdirectory_path = path.join(host_file_cache_path, subdirectory); + if (fs.existsSync(subdirectory_path)) { + } else { + fs.mkdirSync(subdirectory_path); + console.log(`Subdirectory directory created: ${subdirectory_path}`); + } + + let hash_file_cache_path = path.join(subdirectory_path, hash_filename); + // console.log(hash_file_cache_path); + + let download_file_result = await ipcRenderer.invoke('download_file', api_server_base_url, endpoint, hash_file_cache_path).then((result) => { + console.log('IPC download file process finished'); + console.log(result); + return true; + }); + + // console.log(download_file_result); + // console.log('End: download_hash_file_to_cache()'); + if (download_file_result) { + console.log('File downloaded successfully'); + return true; + } else { + console.log('File was not downloaded successfully'); + return false; + } +} + + +// Open cached hash file after copying to temp directory +// Updated 2022-05-06 +exports.open_hash_file_to_temp = async function ({host_file_cache_path, hash, host_file_temp_path, filename}) { + console.log('*** Electron framework export: open_hash_file_to_temp() ***'); + // console.log('Open cached hash file after copying to temp directory'); + console.log(`Host File Cache Path: ${host_file_cache_path}; Hash: ${hash}; Host File Temp Path: ${host_file_temp_path}; Filename: ${filename}`); + + let subdirectory = hash.substring(0,2); + let subdirectory_path = path.join(host_file_cache_path, subdirectory); + if (fs.existsSync(subdirectory_path)) { + } else { + console.log(`Hashed file subdirectory not found in cache: ${subdirectory_path}`); + return false; + } + + let open_hash_file_to_temp_result = await ipcRenderer.invoke('open_hash_file_to_temp', subdirectory_path, hash, host_file_temp_path, filename).then((result) => { + console.log('IPC open hash file to temp finished'); + console.log(result); + return true; + }) + + // let result = await ipcRenderer.send('open_local_file', host_file_cache_path, hash, host_file_temp_path, filename); + // console.log(result); + + console.log(open_hash_file_to_temp_result); + console.log('End: open_hash_file_to_temp()'); + if (open_hash_file_to_temp_result) { + console.log('File opened successfully'); + return true; + } else { + console.log('File was not opened successfully'); + return false; + } +} + + +// Open local file +// Updated 2022-03-10 +exports.open_local_file = async function ({local_file_path, filename}) { + console.log('*** Electron framework export: open_local_file() ***'); + // console.log('Open local file'); + console.log(`Local File Path: ${local_file_path}; Filename: ${filename}`); + + // let full_local_file_path = path.join(local_file_path, filename); + // console.log(full_local_file_path); + + // if (fs.existsSync(full_local_file_path)) { + // console.log(`Local file exists: ${full_local_file_path}`); + // // return true; + // } else { + // return false; + // } + + let open_local_file_result = await ipcRenderer.invoke('open_local_file', local_file_path, filename).then((result) => { + console.log('IPC open local file finished'); + console.log(result); + return true; + }) + + console.log(open_local_file_result); + console.log('End: open_local_file()'); + if (open_local_file_result) { + console.log('File opened successfully'); + return true; + } else { + console.log('File was not opened successfully'); + return false; + } +} + + + + +// Check local file cache and download from server if needed. +// Updated 2022-03-09 +// exports.check_file_cache = async function ({host_file_cache_path, event_file_id, hash}) { +exports.check_file_cache = async function ({host_file_cache_path, event_file_id, hash}) { + console.log('*** Electron framework export: check_file_cache() ***'); + // console.log('Check local file cache and download from server if needed.'); + console.log(`Host File Cache Path: ${host_file_cache_path}; Event File ID: ${event_file_id}; Hash: ${hash}`); + + // NOTE: event_file_id is the event_file.id_random or event_file.event_file_id_random + let hash_filename = hash+'.file'; + + let save_path = path.join(host_file_cache_path, hash_filename); + console.log(save_path); + + if (fs.existsSync(save_path)) { + console.log('Hashed file cache already exists: '+save_path); + return true; + } else { + console.log('Hashed file not found in local cache. Downloading file: '+save_path); + let endpoint = `/event/file/${event_file_id}/download`; + let result = await ipcRenderer.send('download_file', api_server_base_url, endpoint, save_path); // Must download file using main node.js thread. + console.log(result); + + return new Promise((resolve, reject) => { + ipcRenderer.once('download_file_reply', function(event, response){ + console.log(response); + return response; + }) + resolve(true); + }); + + // await ipcRenderer.once('download_file_reply', function(event, response){ + // console.log(response); + // return response; + // }); + + // result.then(function (response) { + // console.log('Downloaded!!!???'); + // return true; + // }).catch(function (error) { + // console.log(error); + // return false; + // }); + + // return result; + + // console.log(result); + // if (result) { + // return true; + // } else { + // return false; + // } + } +} + + + +// Check local file cache and download from server if needed. Must use IPC to Main to download file. Set a Promise to wait for download_file_reply. +// Updated 2022-03-09 +async function check_file_cache({host_file_cache_path, event_file_id, hash}) { + console.log('*** Electron framework: check_file_cache() ***'); + // console.log('Check local file cache and download from server if needed.'); + console.log(`Host File Cache Path: ${host_file_cache_path}; Event File ID: ${event_file_id}; Hash: ${hash}`); + + // NOTE: event_file_id is the event_file.id_random or event_file.event_file_id_random + let hash_filename = hash+'.file'; + + let save_path = path.join(host_file_cache_path, hash_filename); + console.log(save_path); + + if (fs.existsSync(save_path)) { + console.log('Hashed file cache already exists: '+save_path); + return true; + } else { + console.log('Hashed file not found in local cache. Downloading file: '+save_path); + let endpoint = `/event/file/${event_file_id}/download`; + let result = await ipcRenderer.send('download_file', api_server_base_url, endpoint, save_path); // Must download file using main node.js thread. + console.log(result); + + return new Promise((resolve, reject) => { + ipcRenderer.once('download_file_reply', function(event, response){ + console.log(response); + return response; + }) + resolve(true); + }); + + // await ipcRenderer.once('download_file_reply', function(event, response){ + // console.log(response); + // return response; + // }); + + // result.then(function (response) { + // console.log('Downloaded!!!???'); + // return true; + // }).catch(function (error) { + // console.log(error); + // return false; + // }); + + // return result; + + // console.log(result); + // if (result) { + // return true; + // } else { + // return false; + // } + } +} + +// IPC to Main: Open local file cache if available. Copy to temp directory with given filename first. +// Updated 2022-03-09 +async function open_local_file({host_file_cache_path, hash, host_file_temp_path, filename}) { + console.log('*** Electron framework: open_local_file() ***'); + // console.log('Open local file cache if available. Copy to temp directory with given filename first.'); + console.log(`Host File Cache Path: ${host_file_cache_path}; Hash: ${hash}; Host File Temp Path: ${host_file_temp_path}; Filename: ${filename}`); + + console.log(host_file_cache_path); + console.log(hash); + console.log(filename); + + let result = await ipcRenderer.send('open_local_file', host_file_cache_path, hash, host_file_temp_path, filename); + console.log(result); + + return true; +} + + +exports.check_file_cache_and_open_local_file = async function ({host_file_cache_path, event_file_id, hash, host_file_temp_path, filename}) { + console.log('*** Electron framework: check_file_cache_and_open_local_file() ***'); + console.log('Checking the local file cache against the remote server and then opening the local file.'); + + let check_file_cache_result = check_file_cache({host_file_cache_path: host_file_cache_path, event_file_id: event_file_id, hash: hash}); + console.log(check_file_cache_result); + + if (check_file_cache_result) { + let open_local_file_result = open_local_file({host_file_cache_path: host_file_cache_path, hash: hash, host_file_temp_path: host_file_temp_path, filename: filename}); + console.log(open_local_file_result); + + return open_local_file_result; + } + + ipcRenderer.once('download_file_reply', function(event, response){ + console.log(response); + + let open_local_file_result = open_local_file({host_file_cache_path: host_file_cache_path, hash: hash, host_file_temp_path: host_file_temp_path, filename: filename}); + console.log(open_local_file_result); + + return open_local_file_result; + }) +} + + +// Kill processes +// Updated 2022-05-06 +exports.kill_processes = async function ({process_name = null}) { + console.log('*** Electron framework export: kill_processes() ***'); + console.log(process_name); // process_name or grep pattern + + let command = ''; + if (os.platform == 'darwin') { + // command = `osascript -e 'quit app "${process_name}" saving no'`; + command = `osascript -e 'quit application "${process_name}" saving no'`; + } else { + command = `pkill ${process_name}`; + } + + child_process.exec(command, (err, stdout, stdin) => { + if (err) throw err; + console.log(stdout); + }); + console.log('Killed processes?'); + + // let command = `ps -aux | grep ${process_name}`; + // child_process.exec(command, (err, stdout, stdin) => { + // if (err) throw err; + // console.log(stdout); + // }); + + // console.log(await psList()); + // console.log(await ps_list()); + + // let signal = 'SIGTERM'; // 'SIGTERM', 'SIGINT', 'SIGHUP' + + // process.kill(pid, signal); + + // process.kill(pid, 0); // Special case test if process exists + return true; +} + + +// Run raw osascript +// Updated 2022-05-07 +exports.run_osascript = async function ({command=null, interactive=false, language=null, flags='h', program_file=null}) { + console.log('*** Electron framework export: kill_processes() ***'); + console.log(command); + + if (os.platform == 'darwin') { + } else { + console.log('Not available for this platform. macOS (darwin) only.'); + return false; + } + + let osascript_str = ''; + + if (Array.isArray(command)) { + console.log('List of command strings'); + let commands_str = ''; + for (let i = 0; i < command.length; i++) { + commands_str += `-e '${command[i]}'`; + } + osascript_str = `osascript ${commands_str}` + + } else if (typeof command === 'string') { + console.log('Single command string'); + osascript_str = `osascript -e '${command}'`; + } else { + return false; + } + + if (language) { + console.log(`Language: ${language}`); + osascript_str = `${osascript_str} -l ${language}`; + } + + if (flags) { + console.log(`Flags: ${flags}`); + osascript_str = `${osascript_str} -s ${flags}`; + } + + console.log(`OSA Script String: ${osascript_str}`); + child_process.exec(osascript_str, (err, stdout, stdin) => { + if (err) throw err; + console.log(stdout); + console.log(stdin); + }); + + console.log('Finished'); + return true; +} \ No newline at end of file diff --git a/bak/app/static/images/favicon.ico b/bak/app/static/images/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..cf4994903e3855b16cff0b2ad17a7c3e66ae59e7 GIT binary patch literal 1626 zcmV-g2BrClP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00gN300gN4SoPiQ00007bV*G`2iyz; z5<4*rqpSx200r7fL_t(o!|j(_h+bC}$A4>|ea?5z+%hvv(#A_{GBI9CZ6Xw_U=vg9 zG#V`wq4Y^fnsy!{eJb`%un$&5siMU3LP^0YeMwN1Rwu@wG-xQ2ASPpiPJ-6h#K}x% zzWKg$+slV@=DUA0ee=Z)n{zmOum4`_zb<rC3&mYu_vwHsW^Vi$tU3swW#5EmN`eLF5lxp4hi!CO(b`s0zjd%|IQ+ zy9y#Kn#~XVZen`xHm_%Vr9iZv0`*>6o~RPO5$^w@^TI$t5h-KKG~;uP1uqKU2p>Fp zHE;O6bJY50!Qr!CCK?BAVM~0sW%2d*Y`$~rVW(>XT8L(KFaa3T#&>g*zcI1z z8ZK=vionWs;l;gQ=~m$I>yI-w`7*ZBm8nsBlb!jcGz-UlX?10u7DswPivohJ-H5OF z_f%?jyxaA83JX^r=SLs?Y10J%?Zv=;kxU^Vlthek_EqHOMbK;qr z8R}Xuo;i$de~zgahMNlPoH~RJwqrcSMsrLf)viWlr)*QX8@{2ra#L@;=PU}zhv;8HMtQ)n$c+$!7S^O+Zpc%>zR zlx3ulQGl$zl+IW71c`~dt#=t1Ti_#Xz!>VMA}j z4#QRqX*DlclU`FumS;J(d$zqFxcrMJnf&B|MryUvmew+c?g$YhWw!KYK~)hWRE90L z{}E#cO!uA~=70NCcSB+WOEeMS`5m4Rs4p3uQ@pp?XQ?Xwphq}ryRh;E;ziqi8%|Em z;91JNZUJ*jxXF@L9qRg9U$7;pQ<9aOaMbq1@_hKfqciOaOrL*AZKTrK>s%XhRe(}w4yAh;kpQ@@DYe-jfyudUS>)3-r zTFnWDie|PKTY@0QN6aYid*q}ch(1Cv@R@a+WDzOKv@c|FA7Bx(L@`0Jx38!OW=WP`VQ}JpL^k+? zkm5qAFHQ6EXMe@rpKH&Fxu4}6{N6(h-TBM5>emkog?RZDi?J^fuS`=J+O^?NOuYOW zwsMMFS8{&;eBNDzqEp1TUnLrQ_-$Za!FWG39J^$R;`!K-+%LT(NFXVtQ(h}W%ik6{y%{K Y0_>udzR@tf*Z=?k07*qoM6N<$f-{T{WB>pF literal 0 HcmV?d00001 diff --git a/bak/app/static/images/oneskyit_logo.png b/bak/app/static/images/oneskyit_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..64f24870c7c69df27c92adf46d16968ed98b323d GIT binary patch literal 9760 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 \ No newline at end of file diff --git a/bak/app/static/images/site_background.webp b/bak/app/static/images/site_background.webp new file mode 100644 index 0000000000000000000000000000000000000000..e5a15b56dbea18156314c04a0c08969126f4430c GIT binary patch literal 16974 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