From 21316880285d9d406e7732b393a13a95329dee15 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sun, 06 Dec 2015 23:55:08 -0500 Subject: Rename src/prokit.sh to src/main.sh --- (limited to 'src/main.sh') diff --git a/src/main.sh b/src/main.sh new file mode 100644 index 0000000..d0ca8f7 --- /dev/null +++ b/src/main.sh @@ -0,0 +1,93 @@ +# 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= + + load_locale + init_vardata + + 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')) + + case "${cmd}" in + 'help'|'version') ;; + *) check_uid || error 1 "$(get_msg 'uid_0_req')";; + esac + run_cmd "${cmd}" "${@}" + + return ${?} +} + +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 +} -- cgit v0.9.1