#!/bin/bash
#===========================
# UMVIRT LINUX FROM SCRATCH
#===========================
# Compilation script.
# Network mode.
#===========================
# Release: 0.1
# Package: apache-maven
#===========================
# DB commit: d35a620850806ab581b32cb34d268a904c9c0a5f
# APP commit:
#===========================
echo "ULFS Package installation start"
echo "==============================="
echo "Package: apache-maven"
echo "Release: 0.1"
echo "checking config file"
if [ -f $ULFS_CONFIG_FILE ]
then
echo "loading config file $ULFS_CONFIG_FILE..."
. $ULFS_CONFIG_FILE
fi
#Creating log directory
mkdir -p /var/log/ulfs-packages/apache-maven/
#Saving start timestamp
date +%s > /var/log/ulfs-packages/apache-maven/start.time
#Going to source directory...
cd /sources
#Saving downloading timestamp
date +%s > /var/log/ulfs-packages/apache-maven/download.time
#Downloading source package archive...
wget --no-check-certificate -nc https://ulfs.org/linux/downloads/package_files/0.1/packages/a/apache-maven-3.6.1-src.tar.gz.md5sum
wget --no-check-certificate -nc https://ulfs.org/linux/downloads/package_files/0.1/packages/a/apache-maven-3.6.1-src.tar.gz
#Checking source package file existance
if [ ! -f apache-maven-3.6.1-src.tar.gz ]; then
echo "Error: Can't find apache-maven-3.6.1-src.tar.gz. Exiting!"
exit
fi
#Checking source package file checksum
if [ -f apache-maven-3.6.1-src.tar.gz.md5sum ]; then
MD5=`LANG=C md5sum -c apache-maven-3.6.1-src.tar.gz.md5sum | grep OK`
if [ "$MD5" == "" ] ; then
echo "Error: Checksum of apache-maven-3.6.1-src.tar.gz is wrong. Exiting!"
exit
fi
fi
#Downloadning add-ons...
#Downloadning add-on "apache-maven-3.5.4-bin.tar.gz"...
wget --no-check-certificate -nc https://ulfs.org/linux/downloads/package_files/0.1/packages/a/apache-maven-3.5.4-bin.tar.gz.md5sum
wget --no-check-certificate -nc https://ulfs.org/linux/downloads/package_files/0.1/packages/a/apache-maven-3.5.4-bin.tar.gz
#Checking addon file existance
if [ ! -f apache-maven-3.5.4-bin.tar.gz ]; then
echo "Error: Can't find apache-maven-3.5.4-bin.tar.gz. Exiting!"
exit
fi
#Checking add-on file checksum
if [ -f apache-maven-3.5.4-bin.tar.gz.md5sum ]; then
MD5=`LANG=C md5sum -c apache-maven-3.5.4-bin.tar.gz.md5sum | grep OK`
if [ "$MD5" == "" ] ; then
echo "Error: Checksum of apache-maven-3.5.4-bin.tar.gz is wrong. Exiting!"
exit
fi
fi
#Downloadning add-on "maven2-maven3.6.1.tar.gz"...
wget --no-check-certificate -nc https://ulfs.org/linux/downloads/package_files/0.1/packages/m/maven2-maven3.6.1.tar.gz.md5sum
wget --no-check-certificate -nc https://ulfs.org/linux/downloads/package_files/0.1/packages/m/maven2-maven3.6.1.tar.gz
#Checking addon file existance
if [ ! -f maven2-maven3.6.1.tar.gz ]; then
echo "Error: Can't find maven2-maven3.6.1.tar.gz. Exiting!"
exit
fi
#Checking add-on file checksum
if [ -f maven2-maven3.6.1.tar.gz.md5sum ]; then
MD5=`LANG=C md5sum -c maven2-maven3.6.1.tar.gz.md5sum | grep OK`
if [ "$MD5" == "" ] ; then
echo "Error: Checksum of maven2-maven3.6.1.tar.gz is wrong. Exiting!"
exit
fi
fi
#Saving cleanup timestamp
date +%s > /var/log/ulfs-packages/apache-maven/cleanup.time
rm -rfv /sources/apache-maven-3.6.1/
#Saving extracting timestamp
date +%s > /var/log/ulfs-packages/apache-maven/unpack.time
#Extracting tar source package archive with default parameters...
tar -xf apache-maven-3.6.1-src.tar.gz
#Checking package directory size after unpack...
du -s apache-maven-3.6.1 | awk 'NR==1 {print $1}' > /var/log/ulfs-packages/apache-maven/unpack.size
#Going to source package directory...
cd apache-maven-3.6.1
#Saving configuration timestamp
date +%s > /var/log/ulfs-packages/apache-maven/configure.time
#Sleep 1 second
sleep 1
#Running configuration script...
sed -e '/-surefire-/a2.21.0' \
-e '/ /var/log/ulfs-packages/apache-maven/build.time
#Running build script...
mvn -DdistributionTargetDir=build \
package -Dmaven.test.skip=true \
-DskipTests=true -DskipITs \
-Drat.numUnapprovedLicenses=100000
#Saving install timestamp
date +%s > /var/log/ulfs-packages/apache-maven/install.time
#Running install script...
cat > ulfs_install.sh << EOIS
install -vdm 755 /opt/maven-3.6.1 &&
cp -Rv apache-maven/build/* /opt/maven-3.6.1 &&
ln -sfvn maven-3.6.1 /opt/maven
#PATH=\$SAVEPATH &&
#rm -rf ../apache-maven-bin
cat > /etc/profile.d/maven.sh << "EOF"
# Begin /etc/profile.d/maven.sh
pathappend /opt/maven/bin
# End /etc/profile.d/maven.sh
EOF
. /etc/profile
EOIS
USER=`whoami`
if [ "$USER" == "root" ] ; then
cat ulfs_install.sh | bash 2>&1 | tee /var/log/ulfs-packages/apache-maven/install.log
else
cat ulfs_install.sh | sudo bash 2>&1 | tee /var/log/ulfs-packages/apache-maven/install.log
fi
#Saving finish timestamp
date +%s > /var/log/ulfs-packages/apache-maven/finish.time
#Checking package directory size after unpack...
cd /sources
du -s apache-maven-3.6.1 | awk 'NR==1 {print $1}' > /var/log/ulfs-packages/apache-maven/install.size
echo "ULFS package installation completed."
#Producing files list
echo "Looking for installed files..."
if [ -f /var/log/ulfs-packages/apache-maven/files.txt ]; then
rm /var/log/ulfs-packages/apache-maven/files.txt
fi
USER=`whoami`
if [ "$USER" == "root" ] ; then
find /bin -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
find /sbin -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
find /usr -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
find /etc -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
find /opt -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
find /lib -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
find /lib64 -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
find /var -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time \! -path "/var/log/ulfs-packages/apache-maven/*" >> /var/log/ulfs-packages/apache-maven/files.txt
else
sudo find /bin -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
sudo find /sbin -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
sudo find /usr -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
sudo find /etc -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
sudo find /opt -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
sudo find /lib -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
sudo find /lib64 -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time >> /var/log/ulfs-packages/apache-maven/files.txt
sudo find /var -type f -newer /var/log/ulfs-packages/apache-maven/configure.time \! -newer /var/log/ulfs-packages/apache-maven/finish.time \! -path "/var/log/ulfs-packages/apache-maven/*" >> /var/log/ulfs-packages/apache-maven/files.txt
fi
#Marking package as installed...
mkdir -p /var/cache/ulfs-packages
USER=`whoami`
if [ "$USER" == "root" ] ; then
touch /var/cache/ulfs-packages/apache-maven
else
sudo touch /var/cache/ulfs-packages/apache-maven
fi
#Calculate delta size
a=`cat /var/log/ulfs-packages/apache-maven/unpack.size`
b=`cat /var/log/ulfs-packages/apache-maven/install.size`
c=$(($b-$a))
echo $c > /var/log/ulfs-packages/apache-maven/delta.size
#Calculate prepare time
a=`cat /var/log/ulfs-packages/apache-maven/start.time`
b=`cat /var/log/ulfs-packages/apache-maven/configure.time`
dp=$(($b-$a))
#Calculate download time
a=`cat /var/log/ulfs-packages/apache-maven/download.time`
b=`cat /var/log/ulfs-packages/apache-maven/unpack.time`
dd=$(($b-$a))
#Calculate delta time
a=`cat /var/log/ulfs-packages/apache-maven/configure.time`
b=`cat /var/log/ulfs-packages/apache-maven/finish.time`
db=$(($b-$a))
echo $db > /var/log/ulfs-packages/apache-maven/delta.time
#Report
echo ""
echo "ULFS Package installation report"
echo "================================"
echo "Package: apache-maven"
echo "Release: 0.1"
echo "Build size: $c"
echo "Prepare time: $dp sec."
echo "Download time: $dd sec."
echo "Build time: $db sec."
#End of script