adlee themed cli becuase I can.
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
14
rpi/setup.sh
14
rpi/setup.sh
@@ -290,7 +290,7 @@ echo -e "${GREEN}[10/12]${NC} Enabling service..."
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable stegasoo.service
|
||||
|
||||
echo -e "${GREEN}[11/12]${NC} Adding stegasoo to PATH..."
|
||||
echo -e "${GREEN}[11/12]${NC} Setting up user environment..."
|
||||
|
||||
# Add stegasoo venv and rpi scripts to PATH for all users
|
||||
sudo tee /etc/profile.d/stegasoo-path.sh > /dev/null <<'PATHEOF'
|
||||
@@ -303,7 +303,17 @@ if [ -d /opt/stegasoo/rpi ]; then
|
||||
fi
|
||||
PATHEOF
|
||||
sudo chmod 644 /etc/profile.d/stegasoo-path.sh
|
||||
echo " Added /opt/stegasoo/venv/bin and /opt/stegasoo/rpi to PATH"
|
||||
echo " Added stegasoo to PATH"
|
||||
|
||||
# Install custom bashrc if not already customized
|
||||
if [ -f "$INSTALL_DIR/rpi/skel/.bashrc" ]; then
|
||||
if ! grep -q "Stegasoo Pi" ~/.bashrc 2>/dev/null; then
|
||||
cp "$INSTALL_DIR/rpi/skel/.bashrc" ~/.bashrc
|
||||
echo " Installed custom .bashrc"
|
||||
else
|
||||
echo " Custom .bashrc already installed"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}[12/12]${NC} Setting up login banner..."
|
||||
|
||||
|
||||
229
rpi/skel/.bashrc
Normal file
229
rpi/skel/.bashrc
Normal file
@@ -0,0 +1,229 @@
|
||||
# ============================================================================
|
||||
# Stegasoo Pi - Bash Configuration
|
||||
# ============================================================================
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return;;
|
||||
esac
|
||||
|
||||
# ============================================================================
|
||||
# History
|
||||
# ============================================================================
|
||||
|
||||
HISTCONTROL=ignoreboth
|
||||
HISTSIZE=5000
|
||||
HISTFILESIZE=10000
|
||||
shopt -s histappend
|
||||
|
||||
# ============================================================================
|
||||
# Shell Options
|
||||
# ============================================================================
|
||||
|
||||
shopt -s checkwinsize
|
||||
shopt -s globstar 2>/dev/null
|
||||
shopt -s cdspell 2>/dev/null
|
||||
|
||||
# ============================================================================
|
||||
# Colors
|
||||
# ============================================================================
|
||||
|
||||
# Color definitions
|
||||
C_RESET='\[\e[0m\]'
|
||||
C_GREY='\[\e[38;5;241m\]'
|
||||
C_GREEN='\[\e[38;5;118m\]'
|
||||
C_YELLOW='\[\e[38;5;179m\]'
|
||||
C_BLUE='\[\e[38;5;69m\]'
|
||||
C_RED='\[\e[38;5;196m\]'
|
||||
C_BOLD='\[\e[1m\]'
|
||||
|
||||
# Enable color support
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
alias ls='ls --color=auto'
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
fi
|
||||
|
||||
# ============================================================================
|
||||
# Prompt
|
||||
# ============================================================================
|
||||
|
||||
# Git branch in prompt (if git installed)
|
||||
_git_branch() {
|
||||
git branch 2>/dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ \xe2\x8e\x87 \1/'
|
||||
}
|
||||
|
||||
# Two-line prompt similar to zsh theme
|
||||
# ┌「user@host」 「path」 「git」
|
||||
# └$
|
||||
_build_prompt() {
|
||||
local git_info="$(_git_branch)"
|
||||
if [ -n "$git_info" ]; then
|
||||
git_info="${C_GREEN}${git_info}${C_GREY}"
|
||||
fi
|
||||
|
||||
PS1="${C_GREY}┌「${C_GREEN}\u@\h${C_GREY}」 「${C_YELLOW}\w${C_GREY}${git_info}」\n${C_GREY}└${C_BOLD}${C_BLUE}\$ ${C_RESET}"
|
||||
}
|
||||
|
||||
PROMPT_COMMAND='_build_prompt'
|
||||
|
||||
# ============================================================================
|
||||
# Navigation
|
||||
# ============================================================================
|
||||
|
||||
alias ..='cd ..'
|
||||
alias ...='cd ../..'
|
||||
alias ....='cd ../../..'
|
||||
alias ~='cd ~'
|
||||
|
||||
# ============================================================================
|
||||
# Listing
|
||||
# ============================================================================
|
||||
|
||||
alias ll='ls -lah'
|
||||
alias la='ls -A'
|
||||
alias l='ls -CF'
|
||||
alias lt='ls -lahtr'
|
||||
|
||||
# ============================================================================
|
||||
# Safety
|
||||
# ============================================================================
|
||||
|
||||
alias rm='rm -i'
|
||||
alias cp='cp -i'
|
||||
alias mv='mv -i'
|
||||
|
||||
# ============================================================================
|
||||
# Shortcuts
|
||||
# ============================================================================
|
||||
|
||||
alias h='history'
|
||||
alias c='clear'
|
||||
alias q='exit'
|
||||
alias reload='source ~/.bashrc'
|
||||
|
||||
# ============================================================================
|
||||
# System
|
||||
# ============================================================================
|
||||
|
||||
alias myip='curl -s ifconfig.me'
|
||||
alias ports='netstat -tulanp 2>/dev/null || ss -tulanp'
|
||||
alias df='df -h'
|
||||
alias du='du -h'
|
||||
alias free='free -h'
|
||||
alias temp='vcgencmd measure_temp 2>/dev/null || sensors 2>/dev/null | grep -i temp || echo "No temp sensor"'
|
||||
|
||||
# ============================================================================
|
||||
# Stegasoo
|
||||
# ============================================================================
|
||||
|
||||
alias steg='stegasoo'
|
||||
alias steglog='journalctl -u stegasoo -f'
|
||||
alias stegstatus='systemctl status stegasoo'
|
||||
alias stegrestart='sudo systemctl restart stegasoo'
|
||||
alias stegstop='sudo systemctl stop stegasoo'
|
||||
alias stegstart='sudo systemctl start stegasoo'
|
||||
|
||||
# Quick access to stegasoo directories
|
||||
alias cdsteg='cd /opt/stegasoo'
|
||||
alias cdweb='cd /opt/stegasoo/frontends/web'
|
||||
|
||||
# ============================================================================
|
||||
# Git (if available)
|
||||
# ============================================================================
|
||||
|
||||
alias g='git'
|
||||
alias gs='git status'
|
||||
alias ga='git add'
|
||||
alias gc='git commit'
|
||||
alias gp='git push'
|
||||
alias gl='git pull'
|
||||
alias gd='git diff'
|
||||
alias gco='git checkout'
|
||||
alias glog='git log --oneline --graph --decorate -10'
|
||||
|
||||
# ============================================================================
|
||||
# Functions
|
||||
# ============================================================================
|
||||
|
||||
# Create directory and cd into it
|
||||
mkcd() { mkdir -p "$1" && cd "$1"; }
|
||||
|
||||
# Find files by name
|
||||
ff() { find . -type f -iname "*$1*" 2>/dev/null; }
|
||||
|
||||
# Find directories by name
|
||||
fdir() { find . -type d -iname "*$1*" 2>/dev/null; }
|
||||
|
||||
# Quick backup
|
||||
backup() { cp "$1" "$1.backup-$(date +%Y%m%d-%H%M%S)"; }
|
||||
|
||||
# Extract archives
|
||||
extract() {
|
||||
if [ ! -f "$1" ]; then
|
||||
echo "'$1' is not a valid file"
|
||||
return 1
|
||||
fi
|
||||
case "$1" in
|
||||
*.tar.bz2) tar xjf "$1" ;;
|
||||
*.tar.gz) tar xzf "$1" ;;
|
||||
*.tar.xz) tar xJf "$1" ;;
|
||||
*.bz2) bunzip2 "$1" ;;
|
||||
*.gz) gunzip "$1" ;;
|
||||
*.tar) tar xf "$1" ;;
|
||||
*.tbz2) tar xjf "$1" ;;
|
||||
*.tgz) tar xzf "$1" ;;
|
||||
*.zip) unzip "$1" ;;
|
||||
*.Z) uncompress "$1" ;;
|
||||
*.7z) 7z x "$1" ;;
|
||||
*.zst) zstd -d "$1" ;;
|
||||
*) echo "'$1' cannot be extracted" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Show system info
|
||||
sysinfo() {
|
||||
echo -e "\e[1;32mHostname:\e[0m $(hostname)"
|
||||
echo -e "\e[1;32mUptime:\e[0m $(uptime -p)"
|
||||
echo -e "\e[1;32mMemory:\e[0m $(free -h | awk '/^Mem:/ {print $3 "/" $2}')"
|
||||
echo -e "\e[1;32mDisk:\e[0m $(df -h / | awk 'NR==2 {print $3 "/" $2 " (" $5 ")"}')"
|
||||
echo -e "\e[1;32mTemp:\e[0m $(vcgencmd measure_temp 2>/dev/null | cut -d= -f2 || echo 'N/A')"
|
||||
echo -e "\e[1;32mIP:\e[0m $(hostname -I | awk '{print $1}')"
|
||||
}
|
||||
|
||||
# ============================================================================
|
||||
# Completion
|
||||
# ============================================================================
|
||||
|
||||
if ! shopt -oq posix; then
|
||||
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||
. /usr/share/bash-completion/bash_completion
|
||||
elif [ -f /etc/bash_completion ]; then
|
||||
. /etc/bash_completion
|
||||
fi
|
||||
fi
|
||||
|
||||
# ============================================================================
|
||||
# Path
|
||||
# ============================================================================
|
||||
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
# ============================================================================
|
||||
# Welcome Message (first login only)
|
||||
# ============================================================================
|
||||
|
||||
if [ -z "$STEGASOO_WELCOMED" ]; then
|
||||
export STEGASOO_WELCOMED=1
|
||||
echo ""
|
||||
echo -e "\e[38;5;82m ___ _____ ___ ___ _ ___ ___ ___\e[0m"
|
||||
echo -e "\e[38;5;82m / __||_ _|| __| / __| /_\\ / __| / _ \\ / _ \\\e[0m"
|
||||
echo -e "\e[38;5;82m \\__ \\ | | | _| | (_ | / _ \\ \\__ \\ | (_) || (_) |\e[0m"
|
||||
echo -e "\e[38;5;82m |___/ |_| |___| \\___//_/ \\_\\|___/ \\___/ \\___/\e[0m"
|
||||
echo ""
|
||||
echo -e "\e[38;5;245mType 'sysinfo' for system status, 'steglog' for logs\e[0m"
|
||||
echo ""
|
||||
fi
|
||||
Reference in New Issue
Block a user