hostname 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/bin/sh -e
  2. #
  3. # hostname: report a host's name
  4. #
  5. # Copyright (C) 2008-2011 Canonical Ltd.
  6. # Copyright (C) 2011-2014 Dustin Kirkland
  7. #
  8. # Authors: Dustin Kirkland <kirkland@byobu.org>
  9. #
  10. # This program is free software: you can redistribute it and/or modify
  11. # it under the terms of the GNU General Public License as published by
  12. # the Free Software Foundation, version 3 of the License.
  13. #
  14. # This program is distributed in the hope that it will be useful,
  15. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. # GNU General Public License for more details.
  18. #
  19. # You should have received a copy of the GNU General Public License
  20. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  21. __hostname_detail() {
  22. hostname -f 2>/dev/null
  23. }
  24. __hostname() {
  25. local h=
  26. if eval $BYOBU_TEST hostname >/dev/null 2>&1; then
  27. h=$(hostname -s 2>/dev/null || hostname)
  28. elif [ -r /proc/sys/kernel/hostname ]; then
  29. read h < /proc/sys/kernel/hostname
  30. fi
  31. if metadata_available; then
  32. local cache="$BYOBU_RUN_DIR/cache.$BYOBU_BACKEND/hostname"
  33. # Background a retrieval of our public hostname
  34. timeout 0.2 wget -q -O- http://169.254.169.254/latest/meta-data/public-hostname </dev/null >"$cache" 2>/dev/null &
  35. sleep 0.02
  36. [ -s "$cache" ] && read h < "$cache"
  37. fi
  38. [ -n "$h" ] || return
  39. color bold2; printf "%s" "$h"; color --
  40. }
  41. # vi: syntax=sh ts=4 noexpandtab