# Main program file # # Copyright (C) 2013, 2014 Patrick "P. J." McDermott # # This file is part of the ProteanOS Development Kit. # # The ProteanOS Development Kit is free software: you can redistribute # it and/or modify it under the terms of the GNU General Public License # as published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # The ProteanOS Development Kit is distributed in the hope that it # will be useful, but WITHOUT ANY WARRANTY; without even the implied # warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with the ProteanOS Development Kit. If not, see # . set -u # Constant global variables HT=' ' LF=' ' OPTSTRING='hV' if [ -f "${0%/*}/../.builddirstamp" ]; then in_place=true builddir="${0%/*}/.." elif [ -f "${0%/*}/.builddirstamp" ]; then in_place=true builddir="${0%/*}" else in_place=false builddir='' fi main() { local cmd= local es= load_locale if ! get_options "${@}"; then cmd_help_main >&2 exit 1 fi shift $(($OPTIND - 1)) if ${opt_h:-false}; then cmd='help' elif ${opt_V:-false}; then cmd='version' elif [ ${#} -lt 1 ]; then cmd_help_main >&2 exit 1 else cmd="${1}" shift fi srand $(expr ${$} + $(date '+%s')) init_vardata case "${cmd}" in 'help'|'version') ;; *) if ! check_uid; then error "$(get_msg 'uid_0_req')" return 1 fi ;; esac run_cmd "${cmd}" "${@}" es=${?} fini_vardata return ${es} } check_uid() { local uname_s= local uid= uname_s="$( (uname -s) 2>/dev/null)" || uname_s='unknown' uid="$(id -u)" case "${uname_s}" in 'Linux') if [ ${uid} -ne 0 ]; then return 1 fi ;; esac return 0 }