add a mini installer to the standard build. it can still use some more minification, it's at about 24MB and expands to 132MB

git-svn-id: file:///home/svn/framework3/trunk@9341 4d416f70-5f16-0410-b530-b9f4589650da
unstable
James Lee 2010-05-21 06:25:26 +00:00
parent a6795c4714
commit 4f61fb6dc3
1 changed files with 78 additions and 17 deletions

View File

@ -3,16 +3,37 @@
VERSION="3.4.0-release"
BASE=`dirname $0`
# Grab a fresh copy of Metasploit
if [ -f "tmp/msf3/msfconsole" ]; then
svn update tmp/msf3/
else
svn checkout https://www.metasploit.com/svn/framework3/trunk tmp/msf3/
fi
(cd tmp; tar cf msf3.tar msf3)
# We can only "exclude" directories. For specific files, we just have to rm
# them.
MINI_EXCLUDES="
data/templates/src
documentation
external/installer-linux
external/installer-win32
external/source
lib/rex/exploitation/opcodedb.rb
test
"
MINI_RM="
msfd
msfelfscan
msfgui
msfmachscan
msfopcode
msfpescan
msfrpc
msfrpcd
msfweb
test
$(find tmp/msf3-mini -name '*.rb.ut.rb')
"
#
# Expects tmp/msf3.tar to exist
#
build_makeself() {
NAME=$1
TITLE=$1
INSTALLER_FILENAME=$2
BIN_TARBALL_PATH=$3
@ -23,17 +44,57 @@ build_makeself() {
bunzip2 ${TMP}/metasploit.tar.bz2
cp -a scripts/*.sh ${TMP}/
cp -a scripts/msfupdate ${TMP}/
makeself "${TMP}" "${INSTALLER_FILENAME}" "${NAME}" ./installer.sh
makeself "${TMP}" "${INSTALLER_FILENAME}" "${TITLE}" ./installer.sh
rm -rf ${TMP}
}
NAME32="Metasploit Framework v${VERSION} Installer (32-bit)"
PATH32="framework-${VERSION}-linux-i686.run"
BINPATH32="${BASE}/bin/linux32.tar.bz2"
build_makeself "${NAME32}" "${PATH32}" "${BINPATH32}"
if [ -f tmp/msf3/msfconsole ]; then
svn up tmp/msf3
else
svn co https://www.metasploit.com/svn/framework3/trunk msf3
fi
if [ -f tmp/msf3-mini/msfconsole ]; then
svn up tmp/msf3-mini
else
cp -r tmp/msf3 tmp/msf3-mini
for dir in ${MINI_EXCLUDES}; do
# Supposedly only have to do this once
svn up --set-depth=exclude "$dir" 2>/dev/null
done
fi
for file in ${MINI_RM}; do
rm -rf tmp/msf3-mini/"$file"
done
(cd tmp; tar cf msf3.tar msf3)
TITLE="Metasploit Framework v${VERSION} Installer (64-bit)"
INSTALLER_FILENAME="framework-${VERSION}-linux-x86_64.run"
BINPATH="${BASE}/bin/linux64.tar.bz2"
if [ -f ${BINPATH} ]; then
build_makeself "${TITLE}" "${INSTALLER_FILENAME}" "${BINPATH}"
fi
TITLE="Metasploit Framework v${VERSION} Installer (32-bit)"
INSTALLER_FILENAME="framework-${VERSION}-linux-i686.run"
BINPATH="${BASE}/bin/linux32.tar.bz2"
if [ -f ${BINPATH} ]; then
# Build the regular 32-bit installer
# Uses the same msf3.tar as 64-bit, so we don't need to regenerate it.
build_makeself "${TITLE}" "${INSTALLER_FILENAME}" "${BINPATH}"
# Set up and build the mini 32-bit installer
mv tmp/msf3 tmp/msf3-full
mv tmp/msf3-mini tmp/msf3
(cd tmp; tar cf msf3.tar msf3)
mv tmp/msf3 tmp/msf3-mini
mv tmp/msf3-full tmp/msf3
TITLE="Metasploit Framework v${VERSION} Miniature Installer (32-bit)"
INSTALLER_FILENAME="framework-${VERSION}-mini-linux-i686.run"
BINPATH="${BASE}/bin/linux32.tar.bz2"
build_makeself "${TITLE}" "${INSTALLER_FILENAME}" "${BINPATH}"
fi
NAME64="Metasploit Framework v${VERSION} Installer (64-bit)"
PATH64="framework-${VERSION}-linux-x86_64.run"
BINPATH64="${BASE}/bin/linux64.tar.bz2"
build_makeself "${NAME64}" "${PATH64}" "${BINPATH64}"