electron/atom/common/asar
Juan Cruz Viotti 585ff9062c 🐛 Fix missing execution permission bit in execFile override
Consider an electron application that uses `execFile` to run a script
that lives within the application code base:

```coffee
child_process = require 'child_process'
child_process.execFile __dirname + '/script.sh', (error) ->
  throw error if error?
```

An application like this will fail when being packaged in an `asar` with
an following error:

```
Error: spawn EACCES
```

Electron overrides certain `fs` functions to make them work within an
`asar` package. In the case of `execFile`, the file to be executed is
extracted from the `asar` package into a temporary file and ran from
there.

The problem is that during the extraction, the original permissions of
the file are lost.

We workaround this by:

1. Extending `asar.stat` to return whether a file is executable or not,
  which is information that's already saved in the `asar` header.

2. Setting execution permissions on the extracted file if the above
  property holds true.

Fixes: https://github.com/atom/electron/issues/3512
2015-11-26 23:30:23 -04:00
..
archive.cc 🐛 Fix missing execution permission bit in execFile override 2015-11-26 23:30:23 -04:00
archive.h 🐛 Fix missing execution permission bit in execFile override 2015-11-26 23:30:23 -04:00
asar_util.cc Recognize asar archive with unpacked files 2015-03-20 20:34:58 +08:00
asar_util.h Fix cpplint warnings 2015-02-12 19:50:28 +08:00
scoped_temporary_file.cc Add Archive::GetFD 2015-05-11 11:02:17 +08:00
scoped_temporary_file.h Add Archive::GetFD 2015-05-11 11:02:17 +08:00