e651566e14
RETURNS previously conflated fish's $status exit code with genuine stdout/printed output, e.g. rm listing "0/1" as if they were print values rather than exit codes. Rename RETURNS to EXIT STATUS across all 83 documented functions, and reintroduce RETURNS as a distinct label reserved for the 15 functions that actually print to stdout. Update build-manual.py's ENTRY_HEADS to render Exit Status before Returns, manualtools.py's SECTIONS constant, and AGENTS.md's label order and label-usage guidance to match. Add two verify-manual.py regression tests: EXIT STATUS bodies must never contain stray stdout/printed language, and Returns: must always render after Exit Status: when both are present. Regenerate docs/fish-config.md.
69 lines
1.8 KiB
Fish
69 lines
1.8 KiB
Fish
# Copyright (C) 2026 Rootiest
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
# CATEGORY
|
|
# 08-terminal-management
|
|
#
|
|
# SYNOPSIS
|
|
# detach [-h] [--version] <command> [args...]
|
|
#
|
|
# DESCRIPTION
|
|
# Runs a command in the background using nohup, fully detached from the
|
|
# terminal with stdout/stderr discarded. The command survives the current
|
|
# session.
|
|
#
|
|
# ARGUMENTS
|
|
# -h, --help Show help message
|
|
# --version Show version information
|
|
# command The command to run detached
|
|
# args... Additional arguments for the command
|
|
#
|
|
# EXIT STATUS
|
|
# 0 Command launched or help/version shown
|
|
# 1 No command provided or unknown option
|
|
#
|
|
# EXAMPLE
|
|
# detach rsync -a ./data remote:/backup/
|
|
function detach --description 'Execute detach'
|
|
set -l show_help 0
|
|
set -l args
|
|
|
|
for arg in $argv
|
|
switch $arg
|
|
case -h --help
|
|
set show_help 1
|
|
case --version
|
|
echo "detach 1.0.0"
|
|
return
|
|
case '-*' '--*'
|
|
echo "❌ Unknown option: $arg"
|
|
echo "Run 'detach --help' for usage."
|
|
return 1
|
|
case '*'
|
|
set args $args $arg
|
|
end
|
|
end
|
|
|
|
if test $show_help -eq 1
|
|
echo "Usage: detach [command...]"
|
|
echo "Runs a command in the background, fully detached from the terminal."
|
|
echo
|
|
echo "Options:"
|
|
echo " -h, --help Show this help message"
|
|
echo " --version Show version information"
|
|
echo
|
|
echo "Example:"
|
|
echo " detach firefox"
|
|
echo " detach rsync -a ./data remote:/backup/"
|
|
return
|
|
end
|
|
|
|
if test (count $args) -eq 0
|
|
echo "❌ No command provided."
|
|
echo "Run 'detach --help' for usage."
|
|
return 1
|
|
end
|
|
|
|
nohup $args >/dev/null 2>&1 &
|
|
end
|