mirror of https://github.com/icedream/ts3bot.git
				
				
				
			Make xdotool optional.
							parent
							
								
									82c19a2196
								
							
						
					
					
						commit
						f650c3296b
					
				|  | @ -2,7 +2,9 @@ which = require("which").sync | ||||||
| path = require "path" | path = require "path" | ||||||
| log = require("./logger")("RequireBin") | log = require("./logger")("RequireBin") | ||||||
| 
 | 
 | ||||||
| module.exports = (binName) => | module.exports = (binName, doErrorIfNotFound) => | ||||||
|  | 	doErrorIfNotFound = true unless doErrorIfNotFound? | ||||||
|  | 
 | ||||||
| 	# check if xvfb is findable from here | 	# check if xvfb is findable from here | ||||||
| 	if path.resolve(binName) == path.normalize(binName) | 	if path.resolve(binName) == path.normalize(binName) | ||||||
| 		# this is an absolute path | 		# this is an absolute path | ||||||
|  | @ -14,5 +16,9 @@ module.exports = (binName) => | ||||||
| 		log.debug "#{binName} detected:", binPath | 		log.debug "#{binName} detected:", binPath | ||||||
| 		return binPath | 		return binPath | ||||||
| 	catch err | 	catch err | ||||||
| 		log.error "#{binName} could not be found.", err | 		if doErrorIfNotFound | ||||||
|  | 			log.error "#{binName} could not be found." | ||||||
| 			throw new Error "#{binName} could not be found." | 			throw new Error "#{binName} could not be found." | ||||||
|  | 		else | ||||||
|  | 			log.warn "#{binName} could not be found." | ||||||
|  | 			return null | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								x11.iced
								
								
								
								
							
							
						
						
									
										12
									
								
								x11.iced
								
								
								
								
							|  | @ -6,13 +6,18 @@ services = require("./services") | ||||||
| StreamSplitter = require("stream-splitter") | StreamSplitter = require("stream-splitter") | ||||||
| require_bin = require("./require_bin") | require_bin = require("./require_bin") | ||||||
| 
 | 
 | ||||||
| xdotoolBinPath = require_bin "xdotool" | xdotoolBinPath = require_bin "xdotool", false | ||||||
| 
 | 
 | ||||||
| # Just some tools to work with the X11 windows | # Just some tools to work with the X11 windows | ||||||
| module.exports = | module.exports = | ||||||
| 	getWindowIdByProcessId: (pid, cb) => | 	getWindowIdByProcessId: (pid, cb) => | ||||||
| 		wid = null | 		wid = null | ||||||
| 
 | 
 | ||||||
|  | 		# Return null instantly if xdotool is not available | ||||||
|  | 		if not xdotoolBinPath? | ||||||
|  | 			cb? new Error "xdotool is not available" | ||||||
|  | 			return | ||||||
|  | 
 | ||||||
| 		# We provide --name due to the bug mentioned at https://github.com/jordansissel/xdotool/issues/14 | 		# We provide --name due to the bug mentioned at https://github.com/jordansissel/xdotool/issues/14 | ||||||
| 		xdoproc = spawn xdotoolBinPath, [ "search", "--any", "--pid", pid, "--name", "xdosearch" ], | 		xdoproc = spawn xdotoolBinPath, [ "search", "--any", "--pid", pid, "--name", "xdosearch" ], | ||||||
| 			env: | 			env: | ||||||
|  | @ -43,6 +48,11 @@ module.exports = | ||||||
| 	getWindowIdByProcessIdSync: (pid) => Sync() => @getWindowIdByProcessId.sync @, pid | 	getWindowIdByProcessIdSync: (pid) => Sync() => @getWindowIdByProcessId.sync @, pid | ||||||
| 
 | 
 | ||||||
| 	sendKeys: (wid, keys, cb) => | 	sendKeys: (wid, keys, cb) => | ||||||
|  | 		# Do not bother trying if xdotool is not available | ||||||
|  | 		if not xdotoolBinPath? | ||||||
|  | 			cb? new Error "xdotool not available." | ||||||
|  | 			return | ||||||
|  | 
 | ||||||
| 		# blackbox needs to be running for windowactivate to work | 		# blackbox needs to be running for windowactivate to work | ||||||
| 		blackboxService = services.find("BlackBox") | 		blackboxService = services.find("BlackBox") | ||||||
| 		if blackboxService.state != "started" | 		if blackboxService.state != "started" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue