diff --git a/install_gadget.py b/install_gadget.py index 6da3b35..a1d9484 100755 --- a/install_gadget.py +++ b/install_gadget.py @@ -260,6 +260,32 @@ GADGETS = { }, }, }, + 'PowerShellEditorServices': { + 'language': 'powershell', + 'enabled': False, + 'download': { + 'url': 'https://github.com/PowerShell/PowerShellEditorServices/releases/' + 'download/v${version}/PowerShellEditorServices.zip', + 'format': 'zip', + }, + 'do': ( lambda name, root: + MakeSymlink( gadget_dir, + name, + os.path.join( root, 'PowerShellEditorServices' ) ) ), + 'all': { + 'version': '1.13.0', + 'file_name': 'PowerShellEditorServices.zip', + 'checksum': + 'd10bda5c7d36795bb8f860b2d09a637f8f98ee401c60ac4c40a636f8606565b9' + }, + 'adapters': { + 'PowerShell': { + 'name': 'PowerShell', + 'type': 'PowerShell', + 'port': 'ask', + }, + }, + } } @@ -453,7 +479,8 @@ class ModePreservingZipFile( zipfile.ZipFile ): ret_val = self._extract_member( member, path, pwd ) attr = member.external_attr >> 16 - os.chmod( ret_val, attr ) + if attr: + os.chmod( ret_val, attr ) return ret_val diff --git a/support/test/powershell/.vimspector.json b/support/test/powershell/.vimspector.json new file mode 100644 index 0000000..eac5ed1 --- /dev/null +++ b/support/test/powershell/.vimspector.json @@ -0,0 +1,17 @@ +{ + "configurations": { + "launch": { + "adapter": "PowerShell", + "configuration": { + "request": "launch", + "Script": "${file}", + "NoDebug": false, + "StopOnEntry": true, + "Args": [], + "Cwd": "${workspaceRoot}", + "CreateTemporaryIntegratedConsole": true, + "Env": {} + } + } + } +} diff --git a/support/test/powershell/connect b/support/test/powershell/connect new file mode 100755 index 0000000..e9c3fae --- /dev/null +++ b/support/test/powershell/connect @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +PIPE=$(python -c 'import json; print( json.load( open( "session.json" ))["debugServicePipeName"] )') + +ssh -L 4321:$PIPE localhost + diff --git a/support/test/powershell/run b/support/test/powershell/run new file mode 100755 index 0000000..98382db --- /dev/null +++ b/support/test/powershell/run @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +PSES_BUNDLE_PATH=$HOME/.vim/bundle/vimspector/gadgets/macos/PowerShellEditorServices +SESSION_TEMP_PATH=$(pwd) + +pwsh -NoProfile \ + -Command \ + "$PSES_BUNDLE_PATH/PowerShellEditorServices/Start-EditorServices.ps1 \ + -BundledModulesPath $PSES_BUNDLE_PATH \ + -LogPath $SESSION_TEMP_PATH/logs.log \ + -SessionDetailsPath $SESSION_TEMP_PATH/session.json \ + -FeatureFlags @() \ + -AdditionalModules @() \ + -HostName 'My Client' \ + -HostProfileId 'myclient' \ + -HostVersion 1.0.0 \ + -EnableConsoleRepl \ + -LogLevel Verbose" diff --git a/support/test/powershell/test.ps1 b/support/test/powershell/test.ps1 new file mode 100644 index 0000000..d3708d4 --- /dev/null +++ b/support/test/powershell/test.ps1 @@ -0,0 +1,9 @@ +echo "HELLO" +echo "HELLO" +echo "HELLO" +echo "HELLO" +echo "HELLO" +echo "HELLO" +echo "HELLO" +echo "HELLO" +echo "HELLO"