@Override
	public void execute() throws MojoExecutionException {
		NodeJsMojoBase.NodeInstallInformation info = super.run(filter);

		if (info == null) {
			return;
		}

		for (Task task : tasks) {
			try {
				if (task.watch) {
					addWatchForTask(task);
				}
			} catch (IOException ex) {
				throw new MojoExecutionException("Error adding watch for task " + task, ex);
			}
		}


		getLog().info("Starting watch vigil");
		try {
			watch(info);
		} catch (CommandLineException ex) {
			throw new MojoExecutionException("Error during watch", ex);
		} catch (InterruptedException ex) {
			throw new MojoExecutionException("Error during watch", ex);
		} catch (IOException ex) {
			throw new MojoExecutionException("Error during watch", ex);
		}
	}