File: instcopy

package info (click to toggle)
ghostscript 8.71~dfsg2-9%2Bsqueeze2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze-lts
  • size: 79,924 kB
  • ctags: 80,691
  • sloc: ansic: 501,432; sh: 25,689; python: 4,853; cpp: 3,633; perl: 3,597; tcl: 1,480; makefile: 1,187; lisp: 407; asm: 284; xml: 263; awk: 66; csh: 17; yacc: 15
file content (44 lines) | stat: -rwxr-xr-x 1,020 bytes parent folder | download | duplicates (5)
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
#!/bin/sh
# $Id: instcopy 6300 2005-12-28 19:56:24Z giles $
#
# Implement a uniform 'install' syntax independent of which of the two
# "standard" install programs is installed.  Based on ideas in, but not
# copied from, the GNU fileutils install-sh script.  Usage:
#	instcopy -c [-m <mode>] <srcfile> (<dstdir>|<dstfile>)

doit=""
# Uncomment the following line for testing
#doit="echo "

mode=""

    while true; do
	case "$1" in
	    -c) ;;
	    -m) mode=$2; shift ;;
	    *) break ;;
        esac
    shift; done

src=$1
dst=$2

    if [ $# = 2 -a -f $src ]; then true; else
	echo "Usage: instcopy -c [-m <mode>] <srcfile> (<dstdir>|<dstfile>)"
	exit 1
    fi

if [ -d $dst ]; then
    dstdir=`echo $dst | sed -e 's,/$,,'`
    dst="$dstdir"/`basename $src`
else
    dstdir=`echo $dst | sed -e 's,/[^/]*$,,'`
fi
dsttmp=$dstdir/#inst.$$#

$doit cp $src $dsttmp &&
$doit trap "rm -f $dsttmp" 0 &&
if [ x"$mode" != x ]; then $doit chmod $mode $dsttmp; else true; fi &&
$doit rm -f $dst &&
$doit mv $dsttmp $dst &&
exit 0