Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
O
OpenLDAP
Manage
Activity
Members
Labels
Plan
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Christopher Ng
OpenLDAP
Commits
7e593d2e
Commit
7e593d2e
authored
25 years ago
by
Kurt Zeilenga
Browse files
Options
Downloads
Patches
Plain Diff
Replace install-sh with Autoconf 2.13 distributed version (from MIT).
parent
e147dc7a
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
build/install-sh
+239
-33
239 additions, 33 deletions
build/install-sh
with
239 additions
and
33 deletions
build/install-sh
+
239
−
33
View file @
7e593d2e
#!/bin/sh
# simple BSD-like install replacement
#
# Copyright (c) 1994 The Regents of the University of Michigan
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# Copyright 1991 by the Massachusetts Institute of Technology
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
MODE
=
0755
USAGE
=
"usage:
$0
[-c] [-m mode] file dir"
while
[
$#
!=
0
]
;
do
case
"
$1
"
in
-c
)
;;
-m
)
MODE
=
$2
shift
;;
-
*
)
echo
"
$USAGE
"
exit
1
;;
*
)
break
;;
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit
=
"
${
DOITPROG
-
}
"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog
=
"
${
MVPROG
-mv
}
"
cpprog
=
"
${
CPPROG
-cp
}
"
chmodprog
=
"
${
CHMODPROG
-chmod
}
"
chownprog
=
"
${
CHOWNPROG
-chown
}
"
chgrpprog
=
"
${
CHGRPPROG
-chgrp
}
"
stripprog
=
"
${
STRIPPROG
-strip
}
"
rmprog
=
"
${
RMPROG
-rm
}
"
mkdirprog
=
"
${
MKDIRPROG
-mkdir
}
"
transformbasename
=
""
transform_arg
=
""
instcmd
=
"
$mvprog
"
chmodcmd
=
"
$chmodprog
0755"
chowncmd
=
""
chgrpcmd
=
""
stripcmd
=
""
rmcmd
=
"
$rmprog
-f"
mvcmd
=
"
$mvprog
"
src
=
""
dst
=
""
dir_arg
=
""
while
[
x
"
$1
"
!=
x
]
;
do
case
$1
in
-c
)
instcmd
=
"
$cpprog
"
shift
continue
;;
-d
)
dir_arg
=
true
shift
continue
;;
-m
)
chmodcmd
=
"
$chmodprog
$2
"
shift
shift
continue
;;
-o
)
chowncmd
=
"
$chownprog
$2
"
shift
shift
continue
;;
-g
)
chgrpcmd
=
"
$chgrpprog
$2
"
shift
shift
continue
;;
-s
)
stripcmd
=
"
$stripprog
"
shift
continue
;;
-t
=
*
)
transformarg
=
`
echo
$1
|
sed
's/-t=//'
`
shift
continue
;;
-b
=
*
)
transformbasename
=
`
echo
$1
|
sed
's/-b=//'
`
shift
continue
;;
*
)
if
[
x
"
$src
"
=
x
]
then
src
=
$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst
=
$1
fi
shift
continue
;;
esac
shift
done
if
[
$#
!=
2
]
;
then
echo
"
$USAGE
"
exit
1
if
[
x
"
$src
"
=
x
]
then
echo
"install: no input file specified"
exit
1
else
true
fi
FILE
=
$1
DIR
=
$2
cp
$FILE
$DIR
if
[
-d
$DIR
]
;
then
chmod
$MODE
$DIR
/
`
basename
$FILE
`
if
[
x
"
$dir_arg
"
!=
x
]
;
then
dst
=
$src
src
=
""
if
[
-d
$dst
]
;
then
instcmd
=
:
chmodcmd
=
""
else
instcmd
=
$mkdirprog
fi
else
#
# DIR is really the destination file
#
chmod
$MODE
$DIR
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if
[
-f
$src
-o
-d
$src
]
then
true
else
echo
"install:
$src
does not exist"
exit
1
fi
if
[
x
"
$dst
"
=
x
]
then
echo
"install: no destination specified"
exit
1
else
true
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if
[
-d
$dst
]
then
dst
=
"
$dst
"
/
`
basename
$src
`
else
true
fi
fi
## this sed command emulates the dirname command
dstdir
=
`
echo
$dst
|
sed
-e
's,[^/]*$,,;s,/$,,;s,^$,.,'
`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if
[
!
-d
"
$dstdir
"
]
;
then
defaultIFS
=
'
'
IFS
=
"
${
IFS
-
${
defaultIFS
}}
"
oIFS
=
"
${
IFS
}
"
# Some sh's can't handle IFS=/ for some reason.
IFS
=
'%'
set
-
`
echo
${
dstdir
}
|
sed
-e
's@/@%@g'
-e
's@^%@/@'
`
IFS
=
"
${
oIFS
}
"
pathcomp
=
''
while
[
$#
-ne
0
]
;
do
pathcomp
=
"
${
pathcomp
}${
1
}
"
shift
if
[
!
-d
"
${
pathcomp
}
"
]
;
then
$mkdirprog
"
${
pathcomp
}
"
else
true
fi
pathcomp
=
"
${
pathcomp
}
/"
done
fi
if
[
x
"
$dir_arg
"
!=
x
]
then
$doit
$instcmd
$dst
&&
if
[
x
"
$chowncmd
"
!=
x
]
;
then
$doit
$chowncmd
$dst
;
else
true
;
fi
&&
if
[
x
"
$chgrpcmd
"
!=
x
]
;
then
$doit
$chgrpcmd
$dst
;
else
true
;
fi
&&
if
[
x
"
$stripcmd
"
!=
x
]
;
then
$doit
$stripcmd
$dst
;
else
true
;
fi
&&
if
[
x
"
$chmodcmd
"
!=
x
]
;
then
$doit
$chmodcmd
$dst
;
else
true
;
fi
else
# If we're going to rename the final executable, determine the name now.
if
[
x
"
$transformarg
"
=
x
]
then
dstfile
=
`
basename
$dst
`
else
dstfile
=
`
basename
$dst
$transformbasename
|
sed
$transformarg
`
$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if
[
x
"
$dstfile
"
=
x
]
then
dstfile
=
`
basename
$dst
`
else
true
fi
# Make a temp file name in the proper directory.
dsttmp
=
$dstdir
/#inst.
$$
#
# Move or copy the file name to the temp name
$doit
$instcmd
$src
$dsttmp
&&
trap
"rm -f
${
dsttmp
}
"
0
&&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if
[
x
"
$chowncmd
"
!=
x
]
;
then
$doit
$chowncmd
$dsttmp
;
else
true
;
fi
&&
if
[
x
"
$chgrpcmd
"
!=
x
]
;
then
$doit
$chgrpcmd
$dsttmp
;
else
true
;
fi
&&
if
[
x
"
$stripcmd
"
!=
x
]
;
then
$doit
$stripcmd
$dsttmp
;
else
true
;
fi
&&
if
[
x
"
$chmodcmd
"
!=
x
]
;
then
$doit
$chmodcmd
$dsttmp
;
else
true
;
fi
&&
# Now rename the file to the real destination.
$doit
$rmcmd
-f
$dstdir
/
$dstfile
&&
$doit
$mvcmd
$dsttmp
$dstdir
/
$dstfile
fi
&&
exit
0
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment