- Add command line switches: "--help", "--url" & "--user".

This commit is contained in:
Arnaud G. GIBERT 2024-11-05 18:56:11 +01:00
parent df5d1fc545
commit d8af65f2fb
3 changed files with 134 additions and 21 deletions

View File

@ -1,3 +1,11 @@
------------------------------------------------------------------------------------------------------------------------------------
GuaClient V 1.1.0 - A. GIBERT - 2024/11/05
------------------------------------------------------------------------------------------------------------------------------------
- Add command line switches: "--help", "--url" & "--user".
------------------------------------------------------------------------------------------------------------------------------------
GuaClient V 1.0.0 - A. GIBERT - 2024/11/05
------------------------------------------------------------------------------------------------------------------------------------

131
main.js
View File

@ -25,21 +25,22 @@ const electron = require('electron');
const { app, BrowserWindow } = electron;
const prompt = require('electron-prompt')
const process = require('process');
let mainWindow;
let target_url = "https://www.rx3.net/tdsots/admin/guacamole/";
let target_user = "";
app.on('login', (event, webContents, request, authInfo, callback) =>
{
event.preventDefault();
// popup a dialog to let the user enter a username/password
// ...
prompt(
{
title: 'Authentication',
label: 'Enter Login:',
inputAttrs: { type: 'text'},
type: 'input'
}).then((username) =>
if( target_user != "")
{
prompt(
{
@ -47,24 +48,128 @@ app.on('login', (event, webContents, request, authInfo, callback) =>
label: 'Enter Password:',
inputAttrs: { type: 'password'},
type: 'input'
}).then((password) =>
}).then(( password) =>
{
callback( target_user, password);
}).catch( console.error);
}
else
{
prompt(
{
title: 'Authentication',
label: 'Enter Login:',
inputAttrs: { type: 'text'},
type: 'input'
}).then(( username) =>
{
prompt(
{
title: 'Authentication',
label: 'Enter Password:',
inputAttrs: { type: 'password'},
type: 'input'
}).then(( password) =>
{
callback( username, password);
}).catch(console.error);
}).catch(console.error);
}).catch( console.error);
}).catch( console.error);
}
});
app.on('ready', () => {
mainWindow = new BrowserWindow({
mainWindow = new BrowserWindow(
{
width: 1000,
height: 700
});
let exit = false;
for( let i = 2, next = ""; i < process.argv.length; i++)
{
if( next == "")
{
switch( process.argv[ i])
{
case "--url":
{
next = "URL";
break;
}
case "--user":
{
next = "USER";
break;
}
case "--user":
{
next = "USER";
break;
}
case "--help":
{
console.log( "usage: guaclient [--url <Target_URL>] [--user <USER_NAME>]");
console.log( "Defaults: URL: [" + target_url + "] ["+ target_user + "]");
exit = true;
break;
}
default:
{
console.log( "Unknown arg: [" + process.argv[i] + "]");
}
}
}
else
{
switch( next)
{
case "URL":
{
target_url = process.argv[ i];
break;
}
case "USER":
{
target_user = process.argv[ i];
break;
}
default:
{
console.log( "Erreur interne: [" + next + "]");
break;
}
}
next = "";
}
}
if( !exit)
{
console.log( "Connecting [" + target_url + "] with user: [" + target_user + "]");
mainWindow.setTitle('Rx3 Guacamole');
mainWindow.loadURL('https://www.rx3.net/tdsots/admin/guacamole/');
mainWindow.loadURL( target_url);
mainWindow.on('closed', () => {
mainWindow.on('closed', () =>
{
mainWindow = null;
});
}
else
{
app.quit();
}
});

View File

@ -1,6 +1,6 @@
{
"name": "guaclient",
"version": "1.0.0",
"version": "1.1.0",
"description": "Rx3 Guacamole Clinet",
"main": "main.js",
"scripts": {