#! @SHELL@

# GNU Mes --- Maxwell Equations of Software
# Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
#
# This file is part of GNU Mes.
#
# GNU Mes 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.
#
# GNU Mes 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 GNU Mes.  If not, see <http://www.gnu.org/licenses/>.

if [ "$V" = 2 ]; then
    set -x
fi

# parse arguments
while [ $# -gt 0 ]; do
    case $1 in
        (-h|--help)
        cat <<EOF
Usage: mesar [OPTION]... COMMAND ARCHIVE-FILE FILE...
Archiver for MesCC.

Commands:
  r[ab][f][u]  - replace existing or insert new file(s) into the archive
  [c]          - do not warn if the library had to be created
  [D]          - use zero for timestamps and uids/gids (default)

are ignored and assumed to be "crD".

Options:
  -h,--help           display this help and exit
  -V,--version        display version information and exit
EOF
        exit 0
            ;;
        (-V|--version)
        cat <<EOF
mesar (GNU Mes) @VERSION@
EOF
        exit 0
        ;;
        -*) shift
        ;;
        *) break
        ;;
    esac
done

command=$1
shift
if [ -z "$command" ]; then
    echo "AR: Usage error: missing command." 1>&2
    exit 2
fi
archive=$1
shift
if [ -z "$archive" ]; then
    echo "AR: Usage error: missing archive" 1>&2
    exit 2
fi
if [ $# -eq 0 ]; then
    echo "AR: Usage error: missing object files" 1>&2
    exit 2
fi
M1_archive=$(dirname "$archive")/$(basename "$archive" .a).s
for o in "$@"; do
    s=$(dirname "$o")/$(basename "$o" .o).s
    M1_objects="$M1_objects $s"
done
mkdir -p $(dirname "$archive")
cat $M1_objects > "$M1_archive"
cat "$@" > "$archive"
