galeb

Једноставна статичка дистрибуција заснована на musl-у
git clone https://git.sr.ht/~strahinja/galeb
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

g_fun.sh (2029B)


      1 #!/bin/sh
      2 
      3 norm=$(printf     '\033[0m')
      4 bold=$(printf     '\033[1m')
      5 faint=$(printf    '\033[2m')
      6 black=$(printf    '\033[30m')
      7 green=$(printf    '\033[32m')
      8 gray=$(printf     '\033[37m')
      9 bgred=$(printf    '\033[41m')
     10 lred=$(printf     '\033[91m')
     11 yellow=$(printf   '\033[93m')
     12 lblue=$(printf    '\033[94m')
     13 white=$(printf    '\033[97m')
     14 bgyellow=$(printf '\033[103m')
     15 bgwhite=$(printf  '\033[107m')
     16 
     17 LOGFILE=/tmp/boot.log
     18 G_LOGFILE=/dev/null
     19 
     20 create_logfile()
     21 {
     22 	G_LOGFILE=${LOGFILE}
     23 	export G_LOGFILE
     24 	:>${G_LOGFILE}
     25 }
     26 
     27 msg()
     28 {
     29 	local fmt icon icon_plain kind log newline tstamp
     30 
     31 	icon=
     32 	icon_plain=
     33 	kind=$1
     34 	shift
     35 	fmt=$1
     36 	shift
     37 	tstamp=$(date +%T)
     38 
     39 	log=1
     40 	newline=1
     41 	case ${kind} in
     42 		err)    icon_plain="=E="
     43 		        icon="${bold}${white}${bgred}${icon_plain}";;
     44 		info)   icon_plain="=I="
     45 		        icon="${green}${icon_plain}";;
     46 		servnl) icon_plain="=S="
     47 		        icon="${green}${icon_plain}"
     48 			newline=1;;
     49 		serv)   icon_plain="=S="
     50 		        icon="${green}${icon_plain}"
     51 		        newline=0;;
     52 		query)  icon_plain="=Q="
     53 		        icon="${bold}${yellow}${icon_plain}"
     54 		        log=0
     55 		        newline=0;;
     56 		warn)   icon_plain="=W="
     57 		        icon="${bgyellow}${bold}${black}${icon_plain}";;
     58 		*)      ;;
     59 	esac
     60 	printf "%s %s " "${icon}" ${tstamp}
     61 	if [ -n "${G_LOGFILE}" ]; then
     62 		printf "%s %s " "${icon_plain}" ${tstamp} >>${G_LOGFILE}
     63 	fi
     64 	printf "${fmt}${norm}" "$@"
     65 	if [ ${newline} -eq 1 ]; then
     66 		echo
     67 	else
     68 		printf ' '
     69 	fi
     70 	if [ ${log} -eq 1 ] && [ -n "${G_LOGFILE}" ]; then
     71 		printf "$(echo "${fmt}" | \
     72 			sed 's/'$(printf '\033')'\[[0-9]\+m//g')\n" \
     73 				"$@" >>${G_LOGFILE}
     74 	fi
     75 }
     76 
     77 parents()
     78 {
     79 	pid=$1
     80 	if [ -z "$pid" ]; then
     81 		pid=$$
     82 	fi
     83 
     84 	ppid=$(ps -ef | awk '{if ($2=='$pid') print $3}')
     85 	echo $ppid
     86 	if [ $ppid -gt 1 ]; then
     87 		parents $ppid
     88 	fi
     89 }
     90 
     91 intmux()
     92 {
     93 	local intmux=0
     94 	for pid in $(parents); do
     95 		line=$(ps -ef | awk '{if ($2=='$pid') print $0}')
     96 		case "$line" in
     97 		*intmux*)	;;
     98 		*tmux*) 	intmux=1;;
     99 		*)		;;
    100 		esac
    101 	done
    102 	if [ "${intmux}" -eq 1 ]; then
    103 		return 0
    104 	else
    105 		return 1
    106 	fi
    107 }