import { Injectable } from '@angular/core' import { HostAppService, Platform } from 'terminus-core' import { ShellProvider } from '../api/shellProvider' import { Shell } from '../api/interfaces' /* eslint-disable block-scoped-var */ try { var wnr = require('windows-native-registry') // eslint-disable-line @typescript-eslint/no-var-requires, no-var } catch { } /** @hidden */ @Injectable() export class PowerShellCoreShellProvider extends ShellProvider { constructor ( private hostApp: HostAppService, ) { super() } async provide (): Promise { if (this.hostApp.platform !== Platform.Windows) { return [] } const pwshPath = wnr.getRegistryValue(wnr.HK.LM, 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\pwsh.exe', '') if (!pwshPath) { return [] } return [{ id: 'powershell-core', name: 'PowerShell Core', command: pwshPath, args: ['-nologo'], icon: require('../icons/powershell-core.svg'), env: { TERM: 'cygwin', }, }] } }