Update Notifier Tweaks
This commit is contained in:
		
							parent
							
								
									238dd4a996
								
							
						
					
					
						commit
						a26f829399
					
				
					 3 changed files with 13 additions and 5 deletions
				
			
		| 
						 | 
					@ -3,10 +3,11 @@
 | 
				
			||||||
import { commands, ExtensionContext } from 'vscode';
 | 
					import { commands, ExtensionContext } from 'vscode';
 | 
				
			||||||
import { formatXml, linearizeXml } from './features/xmlFormatting';
 | 
					import { formatXml, linearizeXml } from './features/xmlFormatting';
 | 
				
			||||||
import { evaluateXPath } from './features/xmlXPathEngine';
 | 
					import { evaluateXPath } from './features/xmlXPathEngine';
 | 
				
			||||||
 | 
					import { checkForUpdates } from './utils/UpdateNotifier';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function activate(ctx: ExtensionContext) {
 | 
					export function activate(ctx: ExtensionContext) {
 | 
				
			||||||
	// check for update
 | 
						// check for update
 | 
				
			||||||
	//...
 | 
						checkForUpdates();
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// register palette commands
 | 
						// register palette commands
 | 
				
			||||||
	ctx.subscriptions.push(commands.registerTextEditorCommand('xmltools.formatXml', formatXml));
 | 
						ctx.subscriptions.push(commands.registerTextEditorCommand('xmltools.formatXml', formatXml));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,6 +5,7 @@ import { extensions, Extension } from 'vscode';
 | 
				
			||||||
export class ExtensionManifestReader {
 | 
					export class ExtensionManifestReader {
 | 
				
			||||||
	constructor(extensionId: string) {
 | 
						constructor(extensionId: string) {
 | 
				
			||||||
		this._extension = extensions.getExtension(extensionId);
 | 
							this._extension = extensions.getExtension(extensionId);
 | 
				
			||||||
 | 
							this.refresh();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	private _extension: Extension<any>
 | 
						private _extension: Extension<any>
 | 
				
			||||||
| 
						 | 
					@ -27,7 +28,7 @@ export class ExtensionManifestReader {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	refresh(): void {
 | 
						refresh(): void {
 | 
				
			||||||
		let manifest: any = this._extension.packageJSON;
 | 
							let manifest = this._extension.packageJSON;
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		for (let property in manifest)
 | 
							for (let property in manifest)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
| 
						 | 
					@ -35,5 +36,7 @@ export class ExtensionManifestReader {
 | 
				
			||||||
				this[property] = manifest[property];
 | 
									this[property] = manifest[property];
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							this.displayName = manifest.displayName;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -6,9 +6,9 @@ import { ExtensionManifestReader } from './ManifestUtils';
 | 
				
			||||||
let req = require('request');
 | 
					let req = require('request');
 | 
				
			||||||
let semver = require('semver');
 | 
					let semver = require('semver');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function checkForUpdates() {
 | 
					export function checkForUpdates() {	
 | 
				
			||||||
	let manifestReader: ExtensionManifestReader = new ExtensionManifestReader('DotJoshJohnson.xml');
 | 
						let manifestReader: ExtensionManifestReader = new ExtensionManifestReader('DotJoshJohnson.xml');
 | 
				
			||||||
	let currentVersion = manifestReader.version;
 | 
						let currentVersion = '0.0.0';//manifestReader.version;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// use the GitHub api to determine the latest released version
 | 
						// use the GitHub api to determine the latest released version
 | 
				
			||||||
	let url = 'https://api.github.com/repos/DotJoshJohnson/vscode-xml/releases/latest';
 | 
						let url = 'https://api.github.com/repos/DotJoshJohnson/vscode-xml/releases/latest';
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,7 @@ export function checkForUpdates() {
 | 
				
			||||||
	req(options, (error, response, body) => {
 | 
						req(options, (error, response, body) => {
 | 
				
			||||||
		if (!error && response.statusCode == 200) {
 | 
							if (!error && response.statusCode == 200) {
 | 
				
			||||||
			let release = JSON.parse(body);
 | 
								let release = JSON.parse(body);
 | 
				
			||||||
			let latestVersion = release.name.substring(1); // the telease/tag is prefixed with a "v"
 | 
								let latestVersion = release.name.substring(1); // the release/tag is prefixed with a "v"
 | 
				
			||||||
			
 | 
								
 | 
				
			||||||
			if (!release.draft && semver.gt(latestVersion, currentVersion)) {
 | 
								if (!release.draft && semver.gt(latestVersion, currentVersion)) {
 | 
				
			||||||
				let updateNowLabel = 'Update Now';
 | 
									let updateNowLabel = 'Update Now';
 | 
				
			||||||
| 
						 | 
					@ -35,5 +35,9 @@ export function checkForUpdates() {
 | 
				
			||||||
				});
 | 
									});
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							else {
 | 
				
			||||||
 | 
								console.log('XML Tools: Failed to get latest release information from GitHub.');
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue