mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-11 19:34:03 +01:00
raspberry_pi_nextcloud.sh 1276 -> 163, root_bl9000.sh 1116 -> 211, lookup_docs.sh 942 -> 165. Sixteen new libs. lookup_python was one 300-line function; its keyword-to-anchor mapping became python_keyword_doc, emitting result and desc tab-separated so the caller keeps its control flow. bl9000_mtkclient had cd X; work; cd - with three return paths. install_mtkclient became a subshell; extract_boot_with_mtkclient could not, since it exports BOOT_IMG - so the venv check moved before the cd, the cd is guarded, and the restores use a saved $PWD. Four more unguarded cd calls fixed, and a third instance of the lib chaining bug flattened. lookup_docs.sh had no SCRIPT_DIR at all. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011w2Pj4Ek3ZNMQVYcFHgXDY
99 lines
2.5 KiB
Bash
Executable File
99 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Rust documentation lookup.
|
|
#
|
|
# Sourced by lookup_docs.sh; split out to keep it under the 250-line
|
|
# cap. Sourced rather than run, so it inherits the caller's strict mode
|
|
# and the variables defined above the source line.
|
|
|
|
#==============================================================================
|
|
# Rust specific lookup
|
|
#==============================================================================
|
|
lookup_rust() {
|
|
local term="$1"
|
|
local result=""
|
|
local desc=""
|
|
|
|
if command -v rustup &>/dev/null; then
|
|
# Use rustup doc to get path
|
|
local rust_doc_path
|
|
rust_doc_path=$(rustup doc --path 2>/dev/null | head -1 | xargs dirname 2>/dev/null)
|
|
|
|
# Search in std docs
|
|
if [ -d "$rust_doc_path/std" ]; then
|
|
local found
|
|
found=$(find "$rust_doc_path/std" -name "*${term}*" -type f 2>/dev/null | head -1)
|
|
if [ -n "$found" ]; then
|
|
result="$found"
|
|
desc="Rust: $term"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ -n "$result" ]; then
|
|
echo "$result|$desc"
|
|
fi
|
|
}
|
|
|
|
#==============================================================================
|
|
# Go specific lookup
|
|
#==============================================================================
|
|
lookup_go() {
|
|
local term="$1"
|
|
local result=""
|
|
local desc=""
|
|
|
|
if command -v go &>/dev/null; then
|
|
# Check if it's a stdlib package
|
|
if go doc "$term" &>/dev/null; then
|
|
result="go doc $term"
|
|
desc="Go package: $term (use 'go doc $term' to view)"
|
|
fi
|
|
fi
|
|
|
|
if [ -n "$result" ]; then
|
|
echo "$result|$desc"
|
|
fi
|
|
}
|
|
|
|
#==============================================================================
|
|
# Shell specific lookup
|
|
#==============================================================================
|
|
lookup_shell() {
|
|
local term="$1"
|
|
local doc_dir="$DOCS_DIR/shell"
|
|
local result=""
|
|
local desc=""
|
|
|
|
# Check bash builtins
|
|
if [ -f "$doc_dir/bash_builtins.txt" ]; then
|
|
if grep -q "=== $term ===" "$doc_dir/bash_builtins.txt" 2>/dev/null; then
|
|
result="$doc_dir/bash_builtins.txt"
|
|
desc="Bash builtin: $term"
|
|
fi
|
|
fi
|
|
|
|
# Check common commands
|
|
if [ -z "$result" ] && [ -f "$doc_dir/common_commands.txt" ]; then
|
|
if grep -q "^$term" "$doc_dir/common_commands.txt" 2>/dev/null; then
|
|
local cmd_desc
|
|
cmd_desc=$(grep "^$term" "$doc_dir/common_commands.txt" | head -1)
|
|
result="$doc_dir/common_commands.txt"
|
|
desc="Shell command: $cmd_desc"
|
|
fi
|
|
fi
|
|
|
|
# Try man page
|
|
if [ -z "$result" ]; then
|
|
local man_path
|
|
man_path=$(man -w "$term" 2>/dev/null)
|
|
if [ -n "$man_path" ]; then
|
|
result="man $term"
|
|
desc="Manual page: $term (use 'man $term' to view)"
|
|
fi
|
|
fi
|
|
|
|
if [ -n "$result" ]; then
|
|
echo "$result|$desc"
|
|
fi
|
|
}
|