Log path from registry

This commit is contained in:
Kevin Sawicki
2014-11-18 11:35:12 -08:00
parent 7e34e8c4ed
commit f09423e020

View File

@@ -10,41 +10,30 @@ exeName = path.basename(process.execPath)
fileKeyPath = 'HKCU\\Software\\Classes\\*\\shell\\Atom'
directoryKeyPath = 'HKCU\\Software\\Classes\\directory\\shell\\Atom'
backgroundKeyPath = 'HKCU\\Software\\Classes\\directory\\background\\shell\\Atom'
environmentKeyPath = 'HKCU\\Environment'
# Spawn reg.exe and callback when it completes
spawnReg = (args, callback) ->
regProcess = ChildProcess.spawn('reg.exe', args)
error = null
regProcess.on 'error', (processError) -> error ?= processError
regProcess.on 'close', (code, signal) ->
error ?= new Error("Command failed: #{signal ? code}") if code isnt 0
error?.code ?= code
callback(error)
undefined
# Spawn the Update.exe with the given arguments and invoke the callback when
# the command completes.
exports.spawn = (args, callback) ->
updateProcess = ChildProcess.spawn(updateDotExe, args)
spawn = (command, args, callback) ->
spawnedProcess = ChildProcess.spawn('reg.exe', args)
stdout = ''
updateProcess.stdout.on 'data', (data) -> stdout += data
spawnedProcess.stdout.on 'data', (data) -> stdout += data
error = null
updateProcess.on 'error', (processError) -> error ?= processError
updateProcess.on 'close', (code, signal) ->
spawnedProcess.on 'error', (processError) -> error ?= processError
spawnedProcess.on 'close', (code, signal) ->
error ?= new Error("Command failed: #{signal ? code}") if code isnt 0
error?.code ?= code
error?.stdout ?= stdout
callback(error, stdout)
undefined
# Spawn reg.exe and callback when it completes
spawnReg = (args, callback) ->
spawn('reg.exe', args, callback)
# Is the Update.exe installed with Atom?
exports.existsSync = ->
fs.existsSync(updateDotExe)
# Spawn the Update.exe with the given arguments and invoke the callback when
# the command completes.
spawnUpdate = (args, callback) ->
spawn(updateDotExe, args, callback)
installContextMenu = (callback) ->
addToRegistry = (args, callback) ->
@@ -72,13 +61,28 @@ uninstallContextMenu = (callback) ->
deleteFromRegistry directoryKeyPath, ->
deleteFromRegistry(backgroundKeyPath, callback)
updatePath = (callback) ->
getPath = (callback) ->
spawnReg ['query', environmentKeyPath, '/v', 'Path'], (error, stdout) ->
lines = stdout.split('\n')
segments = lines[lines.length - 1].split(' ')
pathSegment = segments[3..].join(' ')
console.log pathSegment
exports.spawn = spawnUpdate
# Is the Update.exe installed with Atom?
exports.existsSync = ->
fs.existsSync(updateDotExe)
# Handle squirrel events denoted by --squirrel-* command line arguments.
exports.handleStartupEvent = ->
switch process.argv[1]
when '--squirrel-install', '--squirrel-updated'
exports.spawn ['--createShortcut', exeName], ->
installContextMenu ->
app.quit()
updatePath ->
app.quit()
true
when '--squirrel-uninstall'
exports.spawn ['--removeShortcut', exeName], ->