hyper-helper
v1.0.0
Published
Some Helper Plugin for Hyper
Downloads
2
Maintainers
Readme
hyper-helper
Helper Plugin for Hyper. Some useful helper, now only the SCPHelper
Install
Add following to your ~/.hyper.js
config.
module.exports = {
...
plugins: ['hyper-helper']
...
}
Config
Add following to ~/.hyper.js
Default plugin config
let pluginConfig = {
enableSCPHelper: false, // Whether to disable scpHelper
defaultSendPath: '~', // Default send choosen path
defaultReceivePath: '~/Downloads', // Default receive folder
aliasSendCommand: "fs", // Alias for send command, means to send file to remote server
aliasReceiveCommand: "js", // Alias for receive command, means to receive file from remote server
sendCommand: "scp_send", // Truly send command name
receiveCommand: "scp_receive", // Truly receive command name
sshConnectTime: 1000, // Timeout for test ssh connection
injectCommand: true, // Whether to inject alias command. If you add the inject command permanent in your remote server's '~/.bashrc' or '/etc/profile', then you can set it to false
injectFuncName: "scp_inject_func", // The inject function name
defaultInteraction: true, // Whether to use the interactive mode to select the send file or the receive path
debugLog: true, // Whether to display log
maxMatchLength: 500, // Match the maximum length of SESSION_PTY_DATA. When the length of SESSION_PTY_DATA is oversized, don't match
matchSSHConnect: (data) => {
return false;
}, // Default method to detect ssh whether to establish a connection. Must return a ssh info array like this [user, host, port] for connected
matchSSHDisconnect: (data) => {
return data.match("Connection to [^ ]+ closed");
} // Default method to detect ssh whether to close the connection
}
Add your config to ~/.hyper.js
module.exports = {
config: {
...
hyperHelper: {
enableSCPHelper: true,
maxMatchLength: 1200,
matchSSHConnect: (data, log)=>{
// if (data.startsWith('Last login') || data.startsWith('Welcome to')) {
let result = data.match(/成功登录【(\w+)@([0-9.]+):([0-9]+)】/)
log("result", result)
if (result) {
return result.slice(1)
}
// }
return false
},
// debugLog: DEBUG,
}
...
}
}
The authenticate for SCP command
There are two ways to resolve it.
Set SSH to share connections
Configure SSH key authentication
Usage
Log into your remote server.
Wait for command injection.
[root@XXXXXXX ~]# scp_inject_func(){ local s="";for i in $@; do s="$s '$i'"; done;s="$s '-w' '$(pwd)'";echo $s; } && alias fs="scp_inject_func scp_send -i" && alias js="scp_inject_func scp_receive -i" && printf '\nUsage:\nfs [localhost:]file1 ... [-d [remoteserver:]path]\njs [remoteserver:]file1 ... [-d [localhost:]path]\n\nOptions:\n-d The destination in localhost or remoteserver.It can be absolute path or relative to your pwd.\n-i Open the file dialog to choose the source files when send to server or the destination folder when receive from server.\n-n Do not Open the file dialog.\n\nExample:\nfs testfile.txt This will send the file in your localhost pwd to the remoteserver.\n\nInject success! Enjoy yourself!\n\n' Usage: fs [localhost:]file1 ... [-d [remoteserver:]path] js [remoteserver:]file1 ... [-d [localhost:]path] Options: -d The destination in localhost or remoteserver.It can be absolute path or relative to your defaultSendPath/defaultReceivePath. -i Open the file dialog to choose the source files when send to server or the destination folder when receive from server. -n Do not Open the file dialog. Example: fs -n testfile.txt This will send the file in your localhost defaultSendPath to the remoteserver. js -n testfile.txt This will receive the file in the current path of your remote server to the defaultReceivePath of your local server. Inject success! Enjoy yourself!
Follow the tip.
Send file to remote server
fs -n testfile.txt
Choose file to send
fs -i
Receive file from remote server
js -n testfile.txt
Choose folder to receive
js -i testfile.txt