#!/bin/bash
# ##############################################################################
# ############################### JLIVECD ######################################
# ##############################################################################
#            Copyright (c) 2015-2017 Md. Jahidul Hamid
# 
# -----------------------------------------------------------------------------
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# 
#     * Redistributions of source code must retain the above copyright notice,
#       this list of conditions and the following disclaimer.
# 
#     * Redistributions in binary form must reproduce the above copyright
#       notice, this list of conditions and the following disclaimer in the
#       documentation and/or other materials provided with the distribution.
# 
#     * The names of its contributors may not be used to endorse or promote 
#       products derived from this software without specific prior written
#       permission.
#       
# Disclaimer:
# 
#     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
#     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
#     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
#     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
#     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
#     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
#     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
#     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
#     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
#     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
#     POSSIBILITY OF SUCH DAMAGE.
# ##############################################################################

echo "
**************** JLIVECD ******************
*Tips:
*   1. Paths must be absolute. (~ allowed)
*   2. Inputs are literal
*   3. Do not use NTFS partition
*******************************************
"

export JLdir=/usr/local/JLIVECD
cd $JLdir
set -a
. ./defconf.sh
. ./funcs.sh
. "$JL_configfile"
set +a
chkroot
if [ -f "$JL_lockF" ]; then
    err_out "another instance of JLIVECD is running. You need to finish that first. If it's a false positive, give y to force your way through."
    force=$(get_yn "Force start..(y/n)?: " 5)
    if [ "$force" != "y" ] && [ "$force" != "Y" ]; then
        msg_out "Aborted."
        exit 1
    fi
fi
touch "$JL_lockF"
trap_with_arg finish SIGTERM EXIT SIGQUIT

mkdir -p "$JL_logdirtmp"

help="
******** JLstart ********
Usage:
    -ub       ubuntu mode
    -db       debian mode
    -al       archlinux mode
    -h        help menu
    -v        version info
See JLopt -h for settings.
"

export live_os=
while [[ $# > 0 ]]
do
    case "$1" in
    	-ub|--ubuntu)
    		live_os=ubuntu
    		;;
        -db|--debian)
        	live_os=debian
            ;;
        -al|--archlinux)
            live_os=archlinux
            ;;
        -v|--version)
        	JLopt --version
        	exit 0
            ;;
        -h|--help)
            echo "$help"
            exit 0
            ;;
        *)
            echo "$help"
            echo "invalid option: '$1'"
            exit 1
        	;;
    esac
    shift
done

JL_fresh=$(get_yn "Is this a new project: (y/n)?: ")
if [ "$JL_fresh" = y -o "$JL_fresh" = Y ]; then
  fresh_start
fi

#trap_with_arg finish SIGTERM EXIT SIGQUIT

yn="$JL_fresh"

if [ "$yn" = y -o "$yn" = Y ]; then
	JL_fresh=y
else
	JL_fresh=n
fi

echo
echo "***********************************************"
echo "*** Default value for (Y/n) prompts is 'n'  ***"
echo "*** unless specified otherwise.             ***"
echo "*** If you just hit enter without giving    ***"
echo "*** anything to a prompt, it will take the  ***"
echo "*** default (previous) value.               ***"
echo "***********************************************"

jlcd_start ${1+"$@"}
