# default gosh_profile
# only read if etc/gosh_profile doesn't exist relative to the System property
# gosh.home or failing that the current directory.

# ensure gogo commands are found first
SCOPE = gogo:*

# add methods on BundleContext object as commands
#addcommand context ${.context} (${.context} class)
# bug: above invokes (String, Object, String) instead of (String, Object, Class)
addcommand context ${.context}

# add methods on System object as commands
addcommand system ((context:bundle 0) loadclass java.lang.System)

# alias to print full stack trace
e = { $exception printStackTrace }

## disable console auto-formatting of each result
#  you will then need to explicitly use the 'format' command
#  to print the result of commands that don't write to stdout.
#.Gogo.format = false

## disable printing the formatted result of a command into pipelines
#.Format.Pipe = false

# set prompt
prompt = 'g! '

# print welcome message
try {
  cat ($0 resolve motd)
}

# end
