diff options
Diffstat (limited to 'atom-beta')
-rw-r--r-- | atom-beta | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/atom-beta b/atom-beta new file mode 100644 index 000000000000..a6054ac8d7c2 --- /dev/null +++ b/atom-beta @@ -0,0 +1,141 @@ +#!/bin/bash +while getopts ":wtfvh-:" opt; do + case "$opt" in + -) + case "${OPTARG}" in + wait) + WAIT=1 + ;; + help|version) + REDIRECT_STDERR=1 + EXPECT_OUTPUT=1 + ;; + foreground|test) + EXPECT_OUTPUT=1 + ;; + esac + while getopts ":wtfvh-:" opt; do + case "$opt" in + -) + case "${OPTARG}" in + wait) + WAIT=1 + ;; + help|version) + REDIRECT_STDERR=1 + EXPECT_OUTPUT=1 + ;; + foreground|test) + EXPECT_OUTPUT=1 + ;; + esac + ;; + w) + WAIT=1 + ;; + h|v) + REDIRECT_STDERR=1 + EXPECT_OUTPUT=1 + ;; + f|t) + EXPECT_OUTPUT=1 + ;; + esac + done + + if [ $REDIRECT_STDERR ]; then + exec 2> /dev/null + fi + + if [ $EXPECT_OUTPUT ]; then + export ELECTRON_ENABLE_LOGGING=1 + fi + + SCRIPT=$(readlink -f "$0") + USR_DIRECTORY=$(readlink -f $(dirname $SCRIPT)/..) + + ATOM_PATH="$USR_DIRECTORY/share/atom/atom" + + ATOM_HOME="${ATOM_HOME:-$HOME/.atom}" + mkdir -p "$ATOM_HOME" + + if [ $EXPECT_OUTPUT ]; then + "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" + exit $? + else + ( + nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1 + if [ $? -ne 0 ]; then + cat "$ATOM_HOME/nohup.out" + exit $? + fi + ) & + fi + + # Exits this process when Atom is used as $EDITOR + on_die() { + exit 0 + } + trap 'on_die' SIGQUIT SIGTERM + + # If the wait flag is set, don't exit this process until Atom tells it to. + if [ $WAIT ]; then + while true; do + sleep 1 + done + fi + ;; + w) + WAIT=1 + ;; + h|v) + REDIRECT_STDERR=1 + EXPECT_OUTPUT=1 + ;; + f|t) + EXPECT_OUTPUT=1 + ;; + esac +done + +if [ $REDIRECT_STDERR ]; then + exec 2> /dev/null +fi + +if [ $EXPECT_OUTPUT ]; then + export ELECTRON_ENABLE_LOGGING=1 +fi + +SCRIPT=$(readlink -f "$0") +USR_DIRECTORY=$(readlink -f $(dirname $SCRIPT)/..) + +ATOM_PATH="$USR_DIRECTORY/share/atom-beta/atom" + +ATOM_HOME="${ATOM_HOME:-$HOME/.atom}" +mkdir -p "$ATOM_HOME" + +if [ $EXPECT_OUTPUT ]; then + "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" + exit $? +else + ( + nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1 + if [ $? -ne 0 ]; then + cat "$ATOM_HOME/nohup.out" + exit $? + fi + ) & +fi + +# Exits this process when Atom is used as $EDITOR +on_die() { + exit 0 +} +trap 'on_die' SIGQUIT SIGTERM + +# If the wait flag is set, don't exit this process until Atom tells it to. +if [ $WAIT ]; then + while true; do + sleep 1 + done +fi |