6

I have a repository on my local system and am testing my changes on a remote server. I am using VSCode for development. I want that on every save, rsync should run in background and sync the changes in the current local file with remote. How can I achieve this with VSCode?

Abhay Gupta
  • 786
  • 12
  • 30

3 Answers3

9

I am using Save and Run vscode extension for syncing code between local and remote server whenever I hit save in VSCode. Following is the configuration I am using.

"saveAndRun": {
  "commands": [
    {
      "match": ".*",
      "cmd": "rsync -av --no-owner ${file} {destination folder}${relativeFile}",
      "useShortcut": false,
      "silent": false
    },
  ]
}

The output generated when the rsync command is run can been seen in VSCode terminal. You can have add the above configuration in .vscode/settings.json file. You can learn more about editing setting.json file here

Abhay Gupta
  • 786
  • 12
  • 30
2

The Sync-Rsync extension is designed to do this.

JW.
  • 50,691
  • 36
  • 115
  • 143
1

Here is extension code which uses the onDidSaveTextDocument event to run code after a file is saved. The code uses the exec function of the child_process package to run a command. In this case, it launches the chrome browser.

import * as vscode from 'vscode';
import * as path from 'path';

import * as cp from 'child_process';

export function activate(context: vscode.ExtensionContext)
{
    vscode.workspace.onDidSaveTextDocument((d) =>
    {
        vscode.window.showInformationMessage("Document saved:" + path.basename(d.fileName));

        const start = (process.platform == 'darwin' ? 'open' : process.platform == 'win32' ? 'start' : 'xdg-open');
        cp.exec(start + ' chrome ' );
    });
}
RockBoro
  • 2,163
  • 2
  • 18
  • 34