xref: /freebsd/usr.bin/shar/shar.sh (revision 6829dae12bb055451fa467da4589c43bd03b1e64)
1#!/bin/sh -
2#
3# SPDX-License-Identifier: BSD-3-Clause
4#
5# Copyright (c) 1990, 1993
6#	The Regents of the University of California.  All rights reserved.
7#
8# Redistribution and use in source and binary forms, with or without
9# modification, are permitted provided that the following conditions
10# are met:
11# 1. Redistributions of source code must retain the above copyright
12#    notice, this list of conditions and the following disclaimer.
13# 2. Redistributions in binary form must reproduce the above copyright
14#    notice, this list of conditions and the following disclaimer in the
15#    documentation and/or other materials provided with the distribution.
16# 3. Neither the name of the University nor the names of its contributors
17#    may be used to endorse or promote products derived from this software
18#    without specific prior written permission.
19#
20# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30# SUCH DAMAGE.
31#
32#	@(#)shar.sh	8.1 (Berkeley) 6/6/93
33#
34# $FreeBSD$
35
36if [ $# -eq 0 ]; then
37	echo 'usage: shar file ...' 1>&2
38	exit 64			# EX_USAGE
39fi
40
41for i
42do
43	if [ ! \( -d $i -o -r $i \) ]; then
44		echo "$i inaccessible or not exist" 1>&2
45		exit 66		# EX_NOINPUT
46	fi
47done
48
49cat << EOF
50# This is a shell archive.  Save it in a file, remove anything before
51# this line, and then unpack it by entering "sh file".  Note, it may
52# create directories; files and directories will be owned by you and
53# have default permissions.
54#
55# This archive contains:
56#
57EOF
58
59for i
60do
61	echo "#	$i"
62done
63
64echo "#"
65
66for i
67do
68	if [ -d $i ]; then
69		echo "echo c - $i"
70		echo "mkdir -p $i > /dev/null 2>&1"
71	else
72		md5sum=`echo -n $i | md5`
73		echo "echo x - $i"
74		echo "sed 's/^X//' >$i << '$md5sum'"
75		sed 's/^/X/' $i || exit
76		echo "$md5sum"
77	fi
78done
79echo exit
80echo ""
81
82exit 0
83