#!/bin/sh


_command="${0##*/}"
date >>/tmp/000
shopt -s expand_aliases 2>>/dev/null
if which lecho 2>>/dev/null 1>>/dev/null; then
	if [ -n "${LANG}" ]; then
		alias lecho="lecho -c ${0##*/} -l ${LANG}"
	else
		alias lecho="lecho -c ${0##*/}"
	fi
else
	lecho(){
		read _incoming
		echo "${_incoming}"
	}
fi
export LANG=en_US.UTF-8

if ! id -u | grep -q '0'; then
	echo 'Please run "${0##*/}" as root, or use "sudo ${0##*/}"' | lecho | sed "s#\${0\#\#\*/}#${0##*/}#g"
	echo 'Unable to use "$(whoami)" users to achieve the expected goals' | lecho | sed "s#\$(whoami)#$(whoami)#"
	exit 1
fi
#echo -n "[*] $(echo 'Now check this script has been started multiple times at the same time...' | lecho)"
if mkdir "/tmp/dpkg-fill" 2>>/dev/null; then
	#echo 'OK!' | lecho
	sleep 0
else
	echo "[*] $(echo 'Cannot start multiple "${0##*/}" at the same time, which may cause accidental damage' | lecho | sed "s#\${0\#\#\*/}#${0##*/}#")"
	exit 0
fi
unset _check

_check_dpkg_run(){
	_wait=1
	_w="$(echo 'Waiting for dpkg to exit... waited ${_wait} seconds' | lecho)"
	while [ '1' -le '2' ]; do
		_check="$(ps -ef | grep dpkg | grep -v grep | grep -v "$$" | grep -v "sudo ${0##*/}" | wc -l)"
		if [ "${_check}" -ge '1' ]; then
			echo -ne "[*] $(echo "${_w}" | sed "s#\${_wait}#${_wait}#")\c"
			_wait="$((_wait+1))"
			sleep 1
		else
			if [ "${_wait}" -ge '2' ]; then
				echo ''
			fi
			break
		fi
	done
	unset _check _wait _w
}

_run(){
	if [ -n "${_package_row}" ]; then
		case "${_lack}" in
			description)
				_fill="Description: An awesome MobileSubstrate tweak"\!
			;;
			maintainer)
				_fill="Maintainer: someone"
			;;
			*)
				break
			;;
		esac
		if [ -n "${_fill}" ]; then
			sed -i.tmp "${_package_row}a ${_fill}" "${_stash_file}"
		fi
	fi
	unset _package _package_row _lack _fill
}

_check_dpkg_run
i='0'
i_max="$(dpkg -S / 2>&1 | grep -E 'escription|aintainer' | wc -l)"
if [ "${i_max}" -eq '0' ]; then
	echo "[*] $(echo 'No warning found, now exiting...' | lecho)"
else
	_stash_file_0="$(dpkg -S / 2>&1)"
	_stash_file_0="${_stash_file_0#*\'}"
	_stash_file_0="${_stash_file_0%%\'*}"
	if [ -z "$(echo "${_stash_file_0}" | grep '/')" ]; then
		_stash_file='/var/lib/dpkg/status'
	else
		_stash_file="${_stash_file_0}"
	fi
	unset _stash_file_0
	while [ "${i}" -le "${i_max}" ]; do
		case "$(dpkg -S / 2>&1 | grep -E 'warning|escription|aintainer' | sed -n 2p)" in
			*escription*)
				_lack='description'
				echo
				;;
			*aintainer*)
				_lack='maintainer'
				echo
				;;
			*)
				echo
				echo -n "[*] $(echo 'Added missing information for "${i}" items' | lecho | sed "s#\${i}#${i}#")"
				echo
				break
				;;
		esac
		_package="$(dpkg -S / 2>&1 | grep -E 'warning|escription|aintainer' | sed -n 1p)"
		_package="${_package%\'*}"
		_package="${_package##*\'}"
		_package_row="$(sed -n "/^Package: ${_package}$/=" "${_stash_file}")"
		echo -n "[*] $(echo 'found: ${_package} lack: ${_lack}' | lecho | sed "s#\${_package}#${_package}#" | sed "s#\${_lack}#${_lack}#")"
		_check_dpkg_run
		_run
		i="$((i+1))"
	done
fi
rm -f "${_stash_file}.tmp"
rm -rf "/tmp/dpkg-fill"
