No description
Find a file
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
atom 🐛 Fix missing execution permission bit in execFile override 2015-11-26 23:30:23 -04:00
chromium_src Fix building on Windows 2015-11-13 13:23:13 +08:00
docs docs: Mark code blocks 2015-11-24 18:40:50 +08:00
docs-translations s/loadUrl/loadURL/g in docs-translations/ 2015-11-24 21:02:14 +09:00
script Upload the dSYM symbols 2015-11-19 15:10:33 +08:00
spec Add test 2015-11-21 06:58:17 +02:00
tools Fix building with Xcode 6 2015-10-08 10:19:24 +08:00
vendor Update brightray for #3550 2015-11-24 18:39:16 +08:00
.gitignore Added ctags cache files to .gitignore 2015-11-21 02:32:53 +02:00
.gitmodules Checkout boto in our repo 2015-07-03 23:33:49 +08:00
.travis.yml Use Xcode 7. 2015-10-06 16:34:20 -04:00
atom.gyp Bump v0.35.1 2015-11-20 13:36:59 +08:00
common.gypi osx: Don't warn about unkown warning option 2015-09-10 11:15:35 +08:00
CONTRIBUTING.md Fix the git commit messages hash link 2015-09-17 12:34:15 +03:00
filenames.gypi Add session module 2015-11-19 20:47:11 +08:00
LICENSE Switch to use MIT license. 2014-05-04 20:29:08 +08:00
package.json Move native modules to optionalDependencies 2015-10-08 09:25:31 +08:00
README-ko.md Cleanup docs, fix typos 2015-11-20 02:25:44 +09:00
README.md Update nodejs url 2015-11-03 09:13:48 -08:00
toolchain.gypi Fix building with Xcode 6 2015-10-08 10:19:24 +08:00

Electron Logo

Build Status devDependency Status Join the Electron Community on Slack

Formerly known as Atom Shell

The Electron framework lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on Node.js and Chromium and is used in the Atom editor.

Follow @ElectronJS on Twitter for important announcements.

This project adheres to the Contributor Covenant 1.2. By participating, you are expected to uphold this code. Please report unacceptable behavior to atom@github.com.

Downloads

Prebuilt binaries and debug symbols of Electron for Linux, Windows and OS X can be found on the releases page.

You can also use npm to install prebuilt electron binaries:

# Install the `electron` command globally in your $PATH
npm install electron-prebuilt -g

# Install as a development dependency
npm install electron-prebuilt --save-dev

Mirrors

Documentation

Guides and the API reference are located in the docs directory. It also contains documents describing how to build and contribute to Electron.

Documentation Translations

Quick Start

Clone and run the atom/electron-quick-start repository to see a minimal Electron app in action.

Community

You can ask questions and interact with the community in the following locations:

  • electron category on the Atom forums
  • #atom-shell channel on Freenode
  • Atom channel on Slack

Check out awesome-electron for a community maintained list of useful example apps, tools and resources.