dotfiles-rene/oh-my-zsh/custom/platformio.zsh

55 lines
1.3 KiB
Bash
Raw Normal View History

2026-01-04 10:02:25 +01:00
# PlatformIO Helper-Funktionen
# Findet das PlatformIO-Projektverzeichnis (wo platformio.ini liegt)
_pio_find_root() {
local dir="$PWD"
while [[ "$dir" != "/" ]]; do
if [[ -f "$dir/platformio.ini" ]]; then
echo "$dir"
return 0
fi
dir="$(dirname "$dir")"
done
echo "Fehler: Kein PlatformIO-Projekt gefunden (platformio.ini fehlt)" >&2
return 1
}
# Build
alias piob='_pio_build'
_pio_build() {
local root=$(_pio_find_root) || return 1
echo "Building in: $root"
(cd "$root" && pio run)
}
# Upload
alias piou='_pio_upload'
_pio_upload() {
local root=$(_pio_find_root) || return 1
echo "Uploading from: $root"
(cd "$root" && pio run --target upload)
}
# Monitor
alias piom='_pio_monitor'
_pio_monitor() {
local root=$(_pio_find_root) || return 1
echo "Starting monitor from: $root"
(cd "$root" && pio device monitor)
}
# Upload + Monitor (praktische Kombi)
alias pioum='_pio_upload_monitor'
_pio_upload_monitor() {
local root=$(_pio_find_root) || return 1
echo "Upload & Monitor from: $root"
(cd "$root" && pio run --target upload && pio device monitor)
}
# Clean
alias pioc='_pio_clean'
_pio_clean() {
local root=$(_pio_find_root) || return 1
echo "Cleaning: $root"
(cd "$root" && pio run --target clean)
}