hana-cli
Version:
HANA Developer Command Line Interface
59 lines (54 loc) • 2.67 kB
JavaScript
// @ts-check
import * as base from '../utils/base.js'
import * as conn from '../utils/connections.js'
export const command = 'opendbx'
export const aliases = ['open', 'openDBX', 'opendb', 'openDBExplorer', 'opendbexplorer', 'dbx', 'DBX']
export const describe = base.bundle.getText("opendbx")
export const builder = base.getBuilder({})
export function handler (argv) {
base.promptHandler(argv, getDBX, {})
}
export async function getDBX(prompts) {
base.debug('getDBX')
const { default:open } = await import('open')
try {
let options = await conn.getConnOptions(prompts)
const host = options.hana.host
let dbxURL = ''
if (host.includes('us10.hanacloud')) {
dbxURL = 'https://hana-cockpit.cfapps.us10.hana.ondemand.com/sap/hana/cst/catalog/index.html'
} else if (host.includes('us20.hanacloud')) {
dbxURL = 'https://hana-cockpit.cfapps.us20.hana.ondemand.com/sap/hana/cst/catalog/index.html'
} else if (host.includes('eu10.hanacloud')) {
dbxURL = 'https://hana-cockpit.cfapps.eu10.hana.ondemand.com/sap/hana/cst/catalog/index.html'
} else if (host.includes('eu20.hanacloud')) {
dbxURL = 'https://hana-cockpit.cfapps.eu20.hana.ondemand.com/sap/hana/cst/catalog/index.html'
} else if (host.includes('ap10.hanacloud')) {
dbxURL = 'https://hana-cockpit.cfapps.ap10.hana.ondemand.com/sap/hana/cst/catalog/index.html'
} else if (host.includes('ap11.hanacloud')) {
dbxURL = 'https://hana-cockpit.cfapps.ap11.hana.ondemand.com/sap/hana/cst/catalog/index.html'
} else if (host.includes('ap21.hanacloud')) {
dbxURL = 'https://hana-cockpit.cfapps.ap21.hana.ondemand.com/sap/hana/cst/catalog/index.html'
} else {
const db = new base.dbClass(await conn.createConnection(prompts))
let query =
`SELECT * from M_INIFILE_CONTENTS
WHERE FILE_NAME LIKE 'xscontroller.ini'
AND KEY = 'api_url'
ORDER BY FILE_NAME, SECTION, KEY `
let results = await db.statementExecPromisified(await db.preparePromisified(query), [])
if (results[0]) {
let apiUrl = results[0].VALUE
dbxURL = `${apiUrl}/go/hrtt-core`
} else {
await console.log(`${base.bundle.getText("errDBX")}: ${host}`)
return
}
}
open(dbxURL)
console.log(dbxURL)
return base.end()
} catch (error) {
base.error(error)
}
}