electron/atom/common/asar
Juan Cruz Viotti a99c193cf2 🏁 Preserve file extension when extracting from asar
Currently, when calling `copyFileOut`, the original extension from the
file is lost, and a generic `*.tmp` is added instead.

This becomes problematic in the scenario where we use
`child_process.execFile` on a Windows Batch script that lives inside the
`asar` package.

Windows relies on the extension being present in order to interpret the
script accordingly, which results in the following bug because the
operating system doesn't know what do to with this `*.tmp` file:

```
Error: spawn UNKNOWN
```

Steps to reproduce:

1. Create a dummy batch script (test.bat):

```
@echo off
echo "Hello world"
```

2. Create an electron app that attemps to call this script with
`child_process.execFile`:

```js
var child_process = require('child_process');
var path = require('path');

child_process.execFile(path.join(__dirname, 'test.bat'), function(error, stdout) {
    if (error) throw error;
    console.log(stdout);
});
```

3. Package this small application as an asar archive:

```sh
> asar pack mytestapp app.asar
```

4. Execute the application:

```sh
> electron.exe app.asar
```
2015-12-01 14:55:58 -04:00
..
archive.cc 🏁 Preserve file extension when extracting from asar 2015-12-01 14:55:58 -04:00
archive.h Add executable permission in CopyFileOut 2015-11-27 22:06:37 +08: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 🏁 Preserve file extension when extracting from asar 2015-12-01 14:55:58 -04:00
scoped_temporary_file.h 🏁 Preserve file extension when extracting from asar 2015-12-01 14:55:58 -04:00