initial commit
This commit is contained in:
commit
4fd3cece95
21
LICENSE.md
Normal file
21
LICENSE.md
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2016-2019 Dylan Araps
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
3
README.md
Normal file
3
README.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# pfetch
|
||||||
|
|
||||||
|
A pretty system information tool written in POSIX `sh`.
|
55
pfetch
Executable file
55
pfetch
Executable file
|
@ -0,0 +1,55 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
#
|
||||||
|
# pfetch - Simple POSIX sh fetch script.
|
||||||
|
|
||||||
|
die() {
|
||||||
|
printf '\033[31;1merror\033[m: %s.\n' "$@" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
log() {
|
||||||
|
printf '\033[3%s;1m%s\033[m%s%s\n' "$1" "$2" "$3" "${4:-unknown}"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_os() {
|
||||||
|
case $kernel_name in
|
||||||
|
Linux|GNU*) os=linux ;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
die "Unknown OS detected '$kernel_name'" \
|
||||||
|
"Open an issue on GitHub to add support for your OS"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
get_distro() {
|
||||||
|
case $os in
|
||||||
|
linux)
|
||||||
|
. /etc/os-release && distro=$PRETTY_NAME
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
log 1 os " " "$distro"
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
# Hide 'stderr' unless the first argument is '-v'. This saves
|
||||||
|
# polluting the script with '2>/dev/null'.
|
||||||
|
[ "$1" = -v ] || exec 2>/dev/null
|
||||||
|
|
||||||
|
# Store the output of 'uname' to avoid calling it multiple times
|
||||||
|
# throughout the script. 'read <<EOF' is the simplest way of reading
|
||||||
|
# a command into a list of variables.
|
||||||
|
#
|
||||||
|
# NOTE: To avoid breaking indentation with 'EOF', '-EOF' is used.
|
||||||
|
# This has the caveat that the lines be TAB indented.
|
||||||
|
read -r kernel_name kernel_version kernel_machine <<-EOF
|
||||||
|
$(uname -srm)
|
||||||
|
EOF
|
||||||
|
|
||||||
|
get_os
|
||||||
|
get_distro
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
Loading…
Reference in New Issue
Block a user