This is an automated email from the ASF dual-hosted git repository.

msciabarra pushed a commit to branch main
in repository 
https://gitbox.apache.org/repos/asf/openserverless-vscode-extension.git

commit 21a7e09fa4a1d8335016cc8fac0e58ee77be9eb7
Author: mattia-tatone <[email protected]>
AuthorDate: Thu Mar 7 23:36:04 2024 +0100

    rilevazione status login in base al sistema operativo
---
 package.json       |   4 +-
 src/enumerators.ts |   6 +--
 src/extension.ts   | 118 ++++++++++++++++++++---------------------------------
 3 files changed, 50 insertions(+), 78 deletions(-)

diff --git a/package.json b/package.json
index b54a360..2d8677e 100644
--- a/package.json
+++ b/package.json
@@ -34,7 +34,7 @@
                "viewsWelcome": [
                        {
                                "view": "command-palette",
-                               "contents": 
"\n[Deploy](command:nuvolaris.deploy)\n[Devel](command:nuvolaris.devel)\n[Change
 User](command:nuvolaris.changeuser)"
+                               "contents": 
"\n[Devel](command:nuvolaris.devel)\n[Deploy](command:nuvolaris.deploy)\n[Change
 User](command:nuvolaris.changeuser)"
                        }
                ]
        },
@@ -56,4 +56,4 @@
                "eslint": "^8.26.0",
                "typescript": "^5.3.2"
        }
-}
+}
\ No newline at end of file
diff --git a/src/enumerators.ts b/src/enumerators.ts
index debfbae..06f691e 100644
--- a/src/enumerators.ts
+++ b/src/enumerators.ts
@@ -1,6 +1,6 @@
-export enum Commands {
-    Deploy = "nuv ide deploy",
-    Devel = "nuv ide devel"
+export enum CliCommands {
+    Devel = "nuv ide devel",
+    Deploy = "nuv ide deploy"
 }
 
 export enum LoginPageIDs {
diff --git a/src/extension.ts b/src/extension.ts
index b64b4fc..5237d75 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -2,7 +2,9 @@ import * as vscode from 'vscode';
 import { NuvolarisTerminalName } from './constants';
 import { NuvolarisLoginParams } from './interfaces';
 import { LoginPanel } from './login/LoginPanel';
-import { Commands } from './enumerators';
+import { CliCommands } from './enumerators';
+import * as fs from "fs";
+import * as os from "os";
 let nuvLoginParams: NuvolarisLoginParams = {
        nuvUser: '',
        nuvApiHost: '',
@@ -13,10 +15,13 @@ let context: vscode.ExtensionContext;
 export async function activate(ctx: vscode.ExtensionContext) {
        try {
                context = ctx;
-               
-               Object.entries(Commands).forEach(([name, command]) =>
+               let loggedIn = isLoggedIn();
+               if (!loggedIn) LoginPanel.render(handleLogin, 
context.extensionUri);
+
+               Object.entries(CliCommands).forEach(([name, command]) =>
                        
context.subscriptions.push(vscode.commands.registerCommand(`nuvolaris.${name.toLowerCase()}`,
 () => {
-                               if (loginIfNotAlreadyLoggedIn()) 
launchTerminal(command);
+                               if (!loggedIn) LoginPanel.render(handleLogin, 
context.extensionUri);
+                               launchTerminal(command);
                        }
                        )));
 
@@ -26,8 +31,7 @@ export async function activate(ctx: vscode.ExtensionContext) {
                        vscode.window.showInformationMessage("Are you sure you 
want to change user?", yes, no)
                                .then(answer => {
                                        if (answer === yes) {
-                                               clearEnvironmentVariables();
-                                               loginIfNotAlreadyLoggedIn();
+                                               LoginPanel.render(handleLogin, 
context.extensionUri);
                                        }
                                })
                }));
@@ -37,99 +41,67 @@ export async function activate(ctx: 
vscode.ExtensionContext) {
        }
 }
 
-function loginIfNotAlreadyLoggedIn() {
-       try {
-               let validCredentials = validateNuvolarisCredentials();
-               if (validCredentials) launchLoginTerminal();
-               else LoginPanel.render(handleLogin, context.extensionUri);
-               return validCredentials;
-       } catch (error) {
-               printError(error);
-               throw error;
-       }
-}
-
-
-function handleLogin(username: string, password: string, apiHost: string) {
-       try {
-               updateNuvolarisLoginParams(username, password, apiHost);
-               let loginTerminalStatus = launchLoginTerminal();
-               // if (loginTerminalStatus?.code){
-               //      LoginPanel.currentPanel?.dispose();
-
-               // }
-
-       } catch (error) {
-               printError(error);
-               throw error;
-       }
-}
-
-function validateNuvolarisCredentials() {
-       try {
-               let { nuvUser, nuvApiHost, nuvPassword } = nuvLoginParams;
-               return nuvUser && nuvApiHost && nuvPassword;
-       } catch (error) {
-               printError(error);
-               throw error;
-       }
-}
-
-function updateNuvolarisLoginParams(nuvUser: string, nuvPassword: string, 
nuvApiHost: string) {
-       try {
-               nuvLoginParams = {
-                       nuvUser: nuvUser,
-                       nuvApiHost: nuvApiHost,
-                       nuvPassword: nuvPassword
-               }
-               
-       } catch (error) {
-               printError(error);
-               throw error;
-       }
-}
-
-function clearEnvironmentVariables() {
+function isLoggedIn() {
        try {
-               nuvLoginParams = {
-                       nuvUser: '',
-                       nuvApiHost: '',
-                       nuvPassword: ''
+               let isLoggedIn = false;
+               switch (os.platform().toLowerCase()) {
+                       case "linux": {
+                               isLoggedIn = fs.existsSync("/root/.wskprops");
+                               break;
+                       }
+                       case "win32": {
+                               isLoggedIn = 
fs.existsSync(os.userInfo().homedir + "/.wskprops");
+                               break;
+                       }
+                       case 'aix': {
+                               throw new Error("Not implemented yet.")
+                               break;
+                       }
+                       case 'darwin': {
+                               throw new Error("Not implemented yet.")
+                               break;
+                       }
+                       case 'freebsd': {
+                               throw new Error("Not implemented yet.")
+                               break;
+                       }
+                       case 'openbsd': {
+                               throw new Error("Not implemented yet.")
+                               break;
+                       }
+                       case 'sunos': {
+                               throw new Error("Not implemented yet.")
+                               break;
+                       }
                }
-               
+               return isLoggedIn;
        } catch (error) {
                printError(error);
                throw error;
        }
 }
 
-function launchLoginTerminal() {
-       // launchTerminal('nuv -login')
+function handleLogin(username: string, password: string, apiHost: string) {
        try {
-               return launchTerminal(`nuv -login ${nuvLoginParams.nuvApiHost} 
${nuvLoginParams.nuvUser} ${nuvLoginParams.nuvPassword}`)
+               launchTerminal(`nuv -login ${apiHost} ${username} ${password}`)
        } catch (error) {
                printError(error);
                throw error;
        }
 }
 
-function launchTerminal(command: string) {
+function launchTerminal(command: string): void {
        try {
                // If a terminal named "Nuvolaris" already exists, launch the 
command inside that one.
                const terminal = vscode.window.terminals.find(t => t.name === 
NuvolarisTerminalName) || vscode.window.createTerminal(NuvolarisTerminalName);
                terminal.show();
                terminal.sendText(command, true);
-               return terminal
        } catch (error) {
                printError(error);
                throw error;
        }
 }
 
-
-
-
-
 function printError(error: any) {
        return vscode.window.showErrorMessage("Error occurred", 
error.toString());
 }
\ No newline at end of file

Reply via email to