Create a launcher for a node.js script

I'm trying to create a launcher for node.js scripts (so that I can run the scripts by clicking on their file icons instead of launching them from the terminal.) How is this usually done? I'd prefer if I could simply run a script in the terminal by clicking on its icon.

I tried writing a shell script to launch another script in the same folder, but it doesn't show the node.js script's command line output for some reason:

#!/bin/bash
echo -n "Enter a node.js script to run > "
read text
node "$text"

I now know that you're looking for an Ubuntu solution, but in case someone is interested in an OS X solution, here goes:

  • Open Automator.
  • Create a new application.
  • Add an AppleScript action
  • Paste the following code:

on run {input, parameters}

    tell application "Terminal"
        repeat with f in input
            do script "node " & quoted form of (POSIX path of f)
        end repeat
        activate
    end tell

end run
  • Save the application.
  • In Finder, control-click any *.js file and select Open With > Other ..., pick the new application and check 'Always Open With.'

From then on, whenever you open a *.js file, it will open in a new Terminal window that will stay open after node finishes running; add ; exit to the command string above to close automatically (possibly adding read -sn 1 first to wait for a keystroke first.)

i use this to start my node scripts on debian in the terminal

#!/usr/bin/env sh
dir=$(dirname $0)
script="$dir/path_to_your_server.js"
echo "node $script"