summaryrefslogtreecommitdiffstats
path: root/src/init/starship.ion
blob: 5a03ab2e1f23cee9f385261aecfc46b12cc892e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# The PROMPT function is called whenever a prompt needs to be drawn. Docs: https://doc.redox-os.org/ion-manual/html/misc/06-prompt_fn.html
fn PROMPT
    # Save the status immediately, since the status is also updated after variable assignment, etc.
    let STARSHIP_ION_STATUS = $?
    # Save the ION_CMD_DURATION before running any other commands, but after the status since the
    # duration is not updated during variable assignment
    # Account for variable name change sometime during December 2019 - January 2020
    let STARSHIP_ION_CMD_DURATION = $or($CMD_DURATION $ION_CMD_DURATION)
    let STARSHIP_ION_CMD_DURATION = $((STARSHIP_ION_CMD_DURATION * 1000))

    # The STARSHIP between the colons will be replaced with the actual path to the starship executable.
    # The jobs command outputs to stderr, therefore we need to pipe stderr to `wc -l`.
    ::STARSHIP:: prompt --status $STARSHIP_ION_STATUS --jobs $(jobs ^| wc -l) --cmd-duration $STARSHIP_ION_CMD_DURATION
end

# Export the correct name of the shell
export STARSHIP_SHELL="ion"

# Set up the session key that will be used to store logs
export STARSHIP_SESSION_KEY=$(::STARSHIP:: session)