229 lines
6.4 KiB
Bash
Executable File
229 lines
6.4 KiB
Bash
Executable File
#!/bin/sh
|
|
# NetHack 3.6 macosx.sh $NHDT-Date: 1432512814 2015/05/25 00:13:34 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $
|
|
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
|
|
# NetHack may be freely redistributed. See license for details.
|
|
#
|
|
# hints helper script for macosx
|
|
# DO NOT invoke directly.
|
|
|
|
# Works for 10.4 and 10.5. (The 10.5 support might work for 10.4 but keep
|
|
# both versions in case we need to support earlier versions.)
|
|
|
|
cmd=$1
|
|
|
|
case "x$cmd" in
|
|
xuser)
|
|
# fail unless user exists (good through 10.4)
|
|
user=$2
|
|
gotuser=`niutil -readval . /users/$user name 0 2>/dev/null`
|
|
[ -z $gotuser ] && (echo "User $user does not exist."
|
|
exit 1;
|
|
)
|
|
;;
|
|
|
|
#name: dummy1
|
|
#_writers_passwd: dummy1
|
|
#_writers_tim_password: dummy1
|
|
#_writers_picture: dummy1
|
|
#home: /Users/dummy1
|
|
#gid: 504
|
|
#picture: /Library/User Pictures/Animals/Dragonfly.tif
|
|
#uid: 504
|
|
#hint: dummy1
|
|
#_writers_hint: dummy1
|
|
#sharedDir:
|
|
#_shadow_passwd:
|
|
#_writers_realname: dummy1
|
|
#shell: /bin/bash
|
|
#passwd: ********
|
|
#authentication_authority: ;ShadowHash;
|
|
#realname: dummyname1
|
|
#generateduid: F6D4991C-BDF5-481F-A407-D84C6A2D0E2A
|
|
|
|
xgroup)
|
|
# fail unless group exists (good through 10.4)
|
|
group=$2
|
|
gotgrp=`niutil -readval . /groups/$group name 0 2>/dev/null`
|
|
[ -z $gotgrp ] && ( echo "Group $group does not exist."
|
|
exit 1
|
|
)
|
|
;;
|
|
|
|
#niutil -read . /groups/bin name 0
|
|
#name: bin
|
|
#gid: 7
|
|
#passwd: *
|
|
#generateduid: ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000007
|
|
#smb_sid: S-1-5-21-107
|
|
#realname: Binary
|
|
|
|
xuser2)
|
|
# fail unless user exists (required as of 10.5)
|
|
user=$2
|
|
if( dscl localhost -read /Search/Users/$user 1>/dev/null 2>&1 );
|
|
then
|
|
true;
|
|
else
|
|
echo "User $user does not exist.";
|
|
exit 1;
|
|
fi
|
|
;;
|
|
|
|
xgroup2)
|
|
# if group does not exist, create it (required as of 10.5)
|
|
group=$2
|
|
[ -z $group ] && ( echo "No group specified."
|
|
exit 1
|
|
)
|
|
if( dscl localhost -read /Search/Groups/$group 1>/dev/null 2>&1 );
|
|
then
|
|
true;
|
|
else
|
|
echo "Group $group does not exist - creating.";
|
|
dseditgroup -o create -r "Games Group" -s 3600 $group
|
|
if( dscl localhost -read /Search/Groups/$group 1>/dev/null 2>&1 );
|
|
then
|
|
true;
|
|
else
|
|
echo "Unable to create group $group."
|
|
exit 1
|
|
fi
|
|
fi
|
|
;;
|
|
|
|
xeditsysconf)
|
|
src=$2
|
|
dest=$3
|
|
if ! [ -e $dest ]; then
|
|
sed 's/^GDBPATH/#GDBPATH/' $src \
|
|
| sed 's/^GREPPATH=\/bin\/grep/GREPPATH=\/usr\/bin\/grep/' \
|
|
| sed 's/^PANICTRACE_GDB=[12]/PANICTRACE_GDB=0/' \
|
|
| sed 's/^#OPTIONS=.*/&\
|
|
OPTIONS=!use_darkgray/' \
|
|
> $dest
|
|
fi
|
|
;;
|
|
|
|
#% dscl localhost -read /Search/Groups/wheel
|
|
# AppleMetaNodeLocation: /Local/Default
|
|
# GeneratedUID: ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000
|
|
# GroupMembership: root
|
|
# Password: *
|
|
# PrimaryGroupID: 0
|
|
# RealName:
|
|
# System Group
|
|
# RecordName: wheel
|
|
# RecordType: dsRecTypeStandard:Groups
|
|
# SMBSID: S-1-5-21-100
|
|
|
|
xdescplist) SVSDOT=`util/makedefs --svs .`
|
|
cat <<E_O_M;
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>IFPkgDescriptionDeleteWarning</key>
|
|
<string></string>
|
|
<key>IFPkgDescriptionDescription</key>
|
|
<string>NetHack $SVSDOT for the MacOS X Terminal
|
|
</string>
|
|
<key>IFPkgDescriptionTitle</key>
|
|
<string>NetHack</string>
|
|
<key>IFPkgDescriptionVersion</key>
|
|
<string>$SVSDOT</string>
|
|
</dict>
|
|
</plist>
|
|
E_O_M
|
|
;;
|
|
|
|
xinfoplist) SVSDOT=`util/makedefs --svs .`
|
|
cat <<E_O_M;
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>CFBundleGetInfoString</key>
|
|
<string>NetHack $SVSDOT for the MacOS X Terminal</string>
|
|
<key>CFBundleIdentifier</key>
|
|
<string>org.nethack.term</string>
|
|
<key>CFBundleName</key>
|
|
<string>NetHack</string>
|
|
<key>CFBundleShortVersionString</key>
|
|
<string>$SVSDOT</string>
|
|
<key>IFMajorVersion</key>
|
|
<integer>3</integer>
|
|
<key>IFMinorVersion</key>
|
|
<integer>3</integer>
|
|
<key>IFPkgFlagAllowBackRev</key>
|
|
<true/>
|
|
<key>IFPkgFlagAuthorizationAction</key>
|
|
<string>RootAuthorization</string>
|
|
<key>IFPkgFlagDefaultLocation</key>
|
|
<string>/</string>
|
|
<key>IFPkgFlagInstallFat</key>
|
|
<false/>
|
|
<key>IFPkgFlagIsRequired</key>
|
|
<false/>
|
|
<key>IFPkgFlagOverwritePermissions</key>
|
|
<true/>
|
|
<key>IFPkgFlagRelocatable</key>
|
|
<false/>
|
|
<key>IFPkgFlagRestartAction</key>
|
|
<string>NoRestart</string>
|
|
<key>IFPkgFlagRootVolumeOnly</key>
|
|
<false/>
|
|
<key>IFPkgFlagUpdateInstalledLanguages</key>
|
|
<false/>
|
|
<key>IFPkgFlagUseUserMask</key>
|
|
<false/>
|
|
<key>IFPkgFormatVersion</key>
|
|
<real>0.10000000149011612</real>
|
|
</dict>
|
|
</plist>
|
|
E_O_M
|
|
;;
|
|
|
|
*) echo "Unknown command $cmd"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# dscl localhost -read /Search/Users/games
|
|
# dsAttrTypeNative:_writers_hint: games
|
|
# dsAttrTypeNative:_writers_jpegphoto: games
|
|
# dsAttrTypeNative:_writers_LinkedIdentity: games
|
|
# dsAttrTypeNative:_writers_passwd: games
|
|
# dsAttrTypeNative:_writers_picture: games
|
|
# dsAttrTypeNative:_writers_realname: games
|
|
# dsAttrTypeNative:_writers_UserCertificate: games
|
|
# AppleMetaNodeLocation: /Local/Default
|
|
# AuthenticationAuthority: ;ShadowHash; ;Kerberosv5;;games@LKDC:SHA1.3F695B215C78511043D9787CA51DE92E6494A021;LKDC:SHA1.3F695B215C78511043D9787CA51DE92E6494A021;
|
|
# AuthenticationHint: games
|
|
# GeneratedUID: A727EFB1-D6AA-4FE2-8524-0E154890E9A9
|
|
# NFSHomeDirectory: /Users/games
|
|
# Password: ********
|
|
# Picture:
|
|
# /Library/User Pictures/Flowers/Sunflower.tif
|
|
# PrimaryGroupID: 20
|
|
# RealName: games
|
|
# RecordName: games
|
|
# RecordType: dsRecTypeStandard:Users
|
|
# UniqueID: 505
|
|
# UserShell: /bin/bash
|
|
|
|
# see also: http://developer.apple.com/documentation/Porting/Conceptual/PortingUnix/additionalfeatures/chapter_10_section_9.html
|
|
|
|
# another mess: 10.4 creates a group for every user, 10.5 dumps you into staff.
|
|
# so I think we need to explicitly create group games in both (if it doesn't
|
|
# exist) and use owner bin (nope that fails since everything seems to be owned
|
|
# by root. Do we want that? How about just creating user games as well?)
|
|
|
|
# [Hermes:sys/unix/hints] keni% dscl localhost -read /Search/Users/games9
|
|
# <dscl_cmd> DS Error: -14136 (eDSRecordNotFound)
|
|
# [Hermes:sys/unix/hints] keni% dscl localhost -read /Search/Users/games9 >/dev/null
|
|
# <dscl_cmd> DS Error: -14136 (eDSRecordNotFound)
|
|
# [Hermes:sys/unix/hints] keni% dscl localhost -read /Search/Users/games > /dev/null
|
|
# status is good: 0 or 56
|
|
|
|
# file:///Developer/Documentation/DocSets/com.apple.ADC_Reference_Library.CoreReference.docset/Contents/Resources/Documents/releasenotes/MacOSXServer/RN-DirectoryServices/index.html
|