* postinstall: Set IFS to LF only. Change while loop in subshell to
for loop in parent shell. Add code to read system mount points and system cygdrive prefix from registry and append them to /etc/fstab.
This commit is contained in:
parent
999fa99044
commit
6c74e7d7fc
@ -1,3 +1,9 @@
|
|||||||
|
2008-04-07 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* postinstall: Set IFS to LF only. Change while loop in subshell to
|
||||||
|
for loop in parent shell. Add code to read system mount points and
|
||||||
|
system cygdrive prefix from registry and append them to /etc/fstab.
|
||||||
|
|
||||||
2008-04-06 Corinna Vinschen <corinna@vinschen.de>
|
2008-04-06 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* path.cc (struct opt): Rename "system" to "nouser".
|
* path.cc (struct opt): Rename "system" to "nouser".
|
||||||
|
@ -29,9 +29,11 @@ fi
|
|||||||
|
|
||||||
if [ ! -e "/etc/fstab" ]
|
if [ ! -e "/etc/fstab" ]
|
||||||
then
|
then
|
||||||
mount |
|
# Set IFS to just a LF
|
||||||
(
|
_OLD_IFS="$IFS"
|
||||||
while read -r line
|
IFS="
|
||||||
|
"
|
||||||
|
for line in $(mount)
|
||||||
do
|
do
|
||||||
[[ "$line" =~ ([^ ]*)\ on\ ([^ ]*)\ type\ ([^ ]*)\ .* ]]
|
[[ "$line" =~ ([^ ]*)\ on\ ([^ ]*)\ type\ ([^ ]*)\ .* ]]
|
||||||
if [ "${BASH_REMATCH[2]}" = "/" ]
|
if [ "${BASH_REMATCH[2]}" = "/" ]
|
||||||
@ -111,12 +113,58 @@ then
|
|||||||
# none /mnt cygdrive binary 0 0
|
# none /mnt cygdrive binary 0 0
|
||||||
#
|
#
|
||||||
|
|
||||||
${CYGROOT//\\//}/bin /usr/bin ${FS_TYPE} binary 0 0
|
|
||||||
${CYGROOT//\\//}/lib /usr/lib ${FS_TYPE} binary 0 0
|
|
||||||
# This is default anyway:
|
|
||||||
# none /cygdrive cygdrive binary,user 0 0
|
|
||||||
EOF
|
EOF
|
||||||
)
|
|
||||||
|
usr_bin=""
|
||||||
|
usr_lib=""
|
||||||
|
key='\HKLM\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2'
|
||||||
|
for subkey in $(regtool -q list "$key")
|
||||||
|
do
|
||||||
|
if [[ "$subkey" =~ /.* ]]
|
||||||
|
then
|
||||||
|
[ "$subkey" = "/usr/bin" ] && usr_bin="1"
|
||||||
|
[ "$subkey" = "/usr/lib" ] && usr_lib="1"
|
||||||
|
nat=$(regtool -q get "$key\\$subkey\native")
|
||||||
|
nat="${nat//\\//}"
|
||||||
|
nat="${nat// /\\040}"
|
||||||
|
psx="${subkey// /\\040}"
|
||||||
|
flags=$(regtool -q get "$key\\$subkey\flags")
|
||||||
|
echo -n "${nat} ${psx} some_fs "
|
||||||
|
(( $flags & 0x0002 )) && echo -n "binary" || echo -n "text"
|
||||||
|
(( $flags & 0x0010 )) && echo -n ",exec"
|
||||||
|
(( $flags & 0x0040 )) && echo -n ",cygexec"
|
||||||
|
(( $flags & 0x0100 )) && echo -n ",notexec"
|
||||||
|
(( $flags & 0x0800 )) && echo -n ",managed"
|
||||||
|
echo " 0 0"
|
||||||
|
fi >> /etc/fstab
|
||||||
|
done
|
||||||
|
[ -z "$usr_bin" ] &&
|
||||||
|
echo "${CYGROOT//\\//}/bin /usr/bin ${FS_TYPE} binary 0 0" >> /etc/fstab
|
||||||
|
[ -z "$usr_lib" ] &&
|
||||||
|
echo "${CYGROOT//\\//}/lib /usr/lib ${FS_TYPE} binary 0 0" >> /etc/fstab
|
||||||
|
|
||||||
|
cygd=""
|
||||||
|
prefix=$(regtool -q get "$key\cygdrive prefix")
|
||||||
|
flags=$(regtool -q get "$key\cygdrive flags")
|
||||||
|
if [ -n "$prefix" -a \( "$prefix" != "/cygdrive" -o "$flags" -ne 42 \) ]
|
||||||
|
then
|
||||||
|
cygd="1"
|
||||||
|
psx="${prefix// /\\040}"
|
||||||
|
echo -n "none ${psx} cygdrive "
|
||||||
|
(( $flags & 0x0002 )) && echo -n "binary" || echo -n "text"
|
||||||
|
(( $flags & 0x0010 )) && echo -n ",exec"
|
||||||
|
(( $flags & 0x0040 )) && echo -n ",cygexec"
|
||||||
|
(( $flags & 0x0100 )) && echo -n ",notexec"
|
||||||
|
(( $flags & 0x0800 )) && echo -n ",managed"
|
||||||
|
echo ",user 0 0"
|
||||||
|
fi >> /etc/fstab
|
||||||
|
|
||||||
|
if [ -z "$cygd" ]
|
||||||
|
then
|
||||||
|
echo "# This is default anyway:" >> /etc/fstab
|
||||||
|
echo "# none /cygdrive cygdrive binary,user 0 0" >> /etc/fstab
|
||||||
|
fi
|
||||||
|
IFS="$_OLD_IFS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for ${DEVDIR} directory
|
# Check for ${DEVDIR} directory
|
||||||
|
Loading…
x
Reference in New Issue
Block a user