Fix Docker Executable with optional Executable, PHP-CS-Fixer

This commit is contained in:
Glavin Wiechert 2018-05-14 13:21:14 -03:00
parent 7b3bc35048
commit a62ca65a23
2 changed files with 27 additions and 11 deletions

View File

@ -49,6 +49,7 @@ class Executable
.then(() => @) .then(() => @)
.catch((error) => .catch((error) =>
if not @.required if not @.required
@verbose("Not required")
@ @
else else
Promise.reject(error) Promise.reject(error)
@ -366,6 +367,7 @@ class HybridExecutable extends Executable
constructor: (options) -> constructor: (options) ->
super(options) super(options)
@verbose("HybridExecutable Options", options)
if options.docker? if options.docker?
@dockerOptions = Object.assign({}, @dockerOptions, options.docker) @dockerOptions = Object.assign({}, @dockerOptions, options.docker)
@docker = @constructor.dockerExecutable() @docker = @constructor.dockerExecutable()
@ -389,18 +391,32 @@ class HybridExecutable extends Executable
super() super()
.catch((error) => .catch((error) =>
return Promise.reject(error) if not @docker? return Promise.reject(error) if not @docker?
@docker.init() return @
.then(=> @runImage(@versionArgs, @versionRunOptions)) )
.then((text) => @saveVersion(text)) .then(() =>
.then(() => @installedWithDocker = true) shouldTryWithDocker = not @isInstalled and @docker?
.then(=> @) @verbose("Executable shouldTryWithDocker", shouldTryWithDocker, @isInstalled, @docker?)
.catch((dockerError) => if shouldTryWithDocker
@debug(dockerError) return @initDocker()
Promise.reject(error) return @
) )
initDocker: () ->
@docker.init()
.then(=> @runImage(@versionArgs, @versionRunOptions))
.then((text) => @saveVersion(text))
.then(() => @installedWithDocker = true)
.then(=> @)
.catch((dockerError) =>
@debug(dockerError)
Promise.reject(error)
) )
run: (args, options = {}) -> run: (args, options = {}) ->
@verbose("Running HybridExecutable")
@verbose("installedWithDocker", @installedWithDocker)
@verbose("docker", @docker)
@verbose("docker.isInstalled", @docker and @docker.isInstalled)
if @installedWithDocker and @docker and @docker.isInstalled if @installedWithDocker and @docker and @docker.isInstalled
return @runImage(args, options) return @runImage(args, options)
super(args, options) super(args, options)
@ -430,7 +446,7 @@ class HybridExecutable extends Executable
image, image,
newArgs newArgs
], ],
options Object.assign({}, options, { cmd: undefined })
) )
) )

View File

@ -105,7 +105,7 @@ module.exports = class PHPCSFixer extends Beautifier
isPhpScript = (finalPhpCsFixerPath.indexOf(".phar") isnt -1) or (finalPhpCsFixerPath.indexOf(".php") isnt -1) isPhpScript = (finalPhpCsFixerPath.indexOf(".phar") isnt -1) or (finalPhpCsFixerPath.indexOf(".php") isnt -1)
@verbose('isPhpScript', isPhpScript) @verbose('isPhpScript', isPhpScript)
if finalPhpCsFixerPath and isPhpScript if not phpCsFixer.isInstalled and finalPhpCsFixerPath and isPhpScript
php.run([finalPhpCsFixerPath, phpCsFixerOptions, tempFile], runOptions) php.run([finalPhpCsFixerPath, phpCsFixerOptions, tempFile], runOptions)
.then(=> .then(=>
@readFile(tempFile) @readFile(tempFile)