File: mesar.in

package info (click to toggle)
mes 0.24.2-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid
  • size: 6,908 kB
  • sloc: ansic: 24,104; lisp: 11,490; sh: 6,609; asm: 187; makefile: 36
file content (82 lines) | stat: -rw-r--r-- 2,103 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#! @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"