Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
eb65aaf
Added build directory
stheno Jun 9, 2017
acef37b
Fix to last PR
stheno Jun 9, 2017
feee150
Changed tabs to spaces
stheno Jun 10, 2017
e4e6fa2
Mark casper.sh plugin as executable
IsaacSchemm Jun 11, 2017
3ab6415
Merge remote-tracking branch 'origin/build-dir'
IsaacSchemm Jun 11, 2017
c154f8a
Merge branch 'stheno-master'
IsaacSchemm Jun 11, 2017
970c239
Ubuntu title detection fixes
IsaacSchemm Jun 11, 2017
b14c9e0
Implemented ISO downloader
stheno Jun 11, 2017
575ee34
commented the loopback on error with an explanation of choice to leav…
stheno Jun 11, 2017
bb9a92c
Fixed reported bug.
stheno Jun 12, 2017
ed16714
Merge pull request #58 from stheno/master
IsaacSchemm Jun 12, 2017
4ec1c74
Windows 7 install disk plugin added.
stheno Jun 13, 2017
90041b2
7z and fuseiso don't extract win7 properly - not sure why, but we can…
IsaacSchemm Jun 20, 2017
e279cc3
-o cannot accept spaces in path name
IsaacSchemm Jun 20, 2017
5241eef
(issue #60) Allow ISO patterns such as ubuntu-mate-*.iso
IsaacSchemm Jul 19, 2017
33562eb
Fix isohybrid argument path
IsaacSchemm Jul 27, 2017
f5874cb
Fix Debian 9 live DVD issue (#62)
IsaacSchemm Jan 30, 2018
2ba2b6e
plugins/clonezilla.sh: replace deprecated ocs_live_keymap and ocs_lang
pa-d-v Jun 16, 2018
e746464
Add plugin for newer Kaspersky Rescue Disc version
IsaacSchemm Jun 21, 2018
75b1cb8
Make win7 plugin work with Hiren's BootCD PE
IsaacSchemm Jun 21, 2018
3549dbc
Fixed debian-mini.sh anddebian-mini64.sh to be able to have them both…
dasj19 Nov 12, 2018
3b66290
Merge pull request #69 from dasj19/master
IsaacSchemm Nov 14, 2018
537c367
(#70) Don't try to use ubuntu-alternate plugin for ubuntu server live…
IsaacSchemm Dec 26, 2018
200eed5
(#70) Add support for ubuntu server live installer
IsaacSchemm Dec 27, 2018
5c9db86
(#70) Force /casper folder for Ubuntu server installer; change /.disk…
IsaacSchemm Dec 30, 2018
538b2e3
Add plugin for newest version of SystemRescueCd (sysresccd)
IsaacSchemm Mar 4, 2019
67d53c4
Do not try to run isohybrid from downloaded syslinux (use installed v…
IsaacSchemm Mar 4, 2019
96e1ecc
Update Caine support
IsaacSchemm May 27, 2019
700e4eb
Add ReactOS plugin
IsaacSchemm Jun 8, 2019
7bb451f
Update to the TRK plugin
Dustmix Aug 9, 2019
c0e2bac
Merge pull request #1 from S4n1c/trk-patch
Dustmix Aug 9, 2019
4041a2a
Change spaces to tabs; update version in header
IsaacSchemm Aug 10, 2019
a3766e9
Add Bodhi Linux plugin (redirect to capser plugin)
IsaacSchemm Nov 2, 2019
b974b8f
Bugfix (workaround) for when Hiren's (with /boot/memtest.exe) is incl…
IsaacSchemm Nov 2, 2019
97ebc68
Add Parrot OS plugin (redirect to debian)
IsaacSchemm Nov 2, 2019
c898c45
(#77) Fix old versions of Clonezilla
IsaacSchemm Nov 3, 2019
c489051
updated syslinux directory location
ahmedazhar05 Jan 6, 2022
b2866e0
added new puppy linux (Fossa) version to the list
ahmedazhar05 Jan 6, 2022
8e84d43
Merge pull request #82 from ahmedazhar05/master
IsaacSchemm Jan 20, 2022
e8bf938
Update README.md
borekon Jul 29, 2022
e7d3ee6
Merge pull request #83 from borekon/patch-1
IsaacSchemm Aug 1, 2022
169c9ee
(#85) Update casper.sh for Zorin 16.2
IsaacSchemm Nov 19, 2022
43a6188
(#9) Update zorin.sh
IsaacSchemm Nov 19, 2022
a02cfaa
Remove memtest option
IsaacSchemm Nov 19, 2022
3a490c1
Update multicd.sh
IsaacSchemm Nov 19, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
MultiCD
========

Official site: http://multicd.us
Updates are posted at http://blog.multicd.us and http://twitter.com/multicd
Official site: [https://www.lakora.us/multicd/](https://www.lakora.us/multicd/)

Updates are posted at http://twitter.com/multicd
287 changes: 287 additions & 0 deletions downloader.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,287 @@
#!/bin/bash
getISO() {
#echo $1 #Distro name
#echo $2 #Choice Label
#echo $3 #File
#echo $4 #URL
clear
echo "Downloading $2..."
if ! wget -t 1 -O "${3}" "${4}";then
echo "Error: could not download $4. Please update the URL in downloader.sh."
### Left in the loop to main menu commented incase one wants to just loop back on error.
exit 1
#downloadisos
fi

case $1 in
"Ubuntu") select_ubuntu $1 "$2" ;;
*) downloadisos ;;
esac
}
failed() {
error="No $1 entries yet.";
}
cancelled() {
cancel="Selection from $1 cancelled.";
}
### Important:
### This is the blank entry template for distros
### we support but don't have or can't provide links for.
# select_distronamehere() {
# failed "$1"
# return=$error
# downloadisos "$return"
# }
select_debian() {
failed "$1"
cancelled "$1"
return=$error
exit=$cancel
downloadisos "$return"
}
select_fedora() {
failed "$1"
cancelled "$1"
return=$error
exit=$cancel
downloadisos "$return"
}
select_ubuntu() {
failed "$1"
cancelled "$1"
return=$error
exit=$cancel

HEIGHT=50
WIDTH=70
TITLE="ISO Selections"
MENU="Choose an ISO: "
if [ ! "$2" = "" ];then
MENU="Last Downloaded ISO: $2"
fi

ISOS=('12.04.5 Alternate 32bit' \
'12.04.5 Alternate 64bit' \
'12.04.5 Desktop 32bit' \
'12.04.5 Desktop 64bit' \
'12.04.5 Server 32bit' \
'12.04.5 Server 64bit' \
'14.04.5 Desktop 32bit' \
'14.04.5 Desktop 64bit' \
'14.04.5 Server 32bit' \
'14.04.5 Server 64bit' \
'16.04.2 Desktop 32bit' \
'16.04.2 Desktop 64bit' \
'16.04.2 Server 32bit' \
'16.04.2 Server 64bit' \
'16.10 Desktop 32bit' \
'16.10 Desktop 64bit' \
'16.10 Server 32bit' \
'16.10 Server 64bit' \
'17.04 Desktop 32bit' \
'17.04 Desktop 64bit' \
'17.04 Server 32bit' \
'17.04 Server 64bit'
);

COUNT=1
OPTIONS=()
for i in "${ISOS[@]}"; do
OPTIONS+=($COUNT "$i")
COUNT=$[COUNT+1]
done
OPTIONS+=($COUNT "Distro Menu")
COUNT=$[COUNT+1]
OPTIONS+=($COUNT "Exit")
CHOICE_HEIGHT=$[COUNT+3]

CHOICE=$(dialog \
--no-lines \
--title "$TITLE" \
--menu "$MENU" \
$HEIGHT $WIDTH $CHOICE_HEIGHT \
"${OPTIONS[@]}" \
2>&1 >/dev/tty
)

if [[ $CHOICE = $[COUNT-1] ]];then
downloadisos "Returned from $1"
fi
if [[ $CHOICE = $COUNT ]];then
echo "Leaving Distro Downloader from $1 menu."
exit 1
fi

COMMON="http://releases.ubuntu.com/"
FILE=""
URL=""

case $CHOICE in
1)
FILE="ubuntu-12.04.5-alternate-i386.iso"
URL="${COMMON}12.04/${FILE}"
;;
2)
FILE="ubuntu-12.04.5-alternate-amd64.iso"
URL="${COMMON}12.04/${FILE}"
;;
3)
FILE="ubuntu-12.04.5-desktop-i386.iso"
URL="${COMMON}12.04/${FILE}"
;;
4)
FILE="ubuntu-12.04.5-desktop-amd64.iso"
URL="${COMMON}12.04/${FILE}"
;;
5)
FILE="ubuntu-12.04.5-server-i386.iso"
URL="${COMMON}12.04/${FILE}"
;;
6)
FILE="ubuntu-12.04.5-server-amd64.iso"
URL="${COMMON}12.04/${FILE}"
;;

7)
FILE="ubuntu-14.04.5-desktop-i386.iso"
URL="${COMMON}14.04/${FILE}"
;;
8)
FILE="ubuntu-14.04.5-desktop-amd64.iso"
URL="${COMMON}14.04/${FILE}"
;;
9)
FILE="ubuntu-14.04.5-server-i386.iso"
URL="${COMMON}14.04/${FILE}"
;;
10)
FILE="ubuntu-14.04.5-server-amd64.iso"
URL="${COMMON}14.04/${FILE}"
;;

11)
FILE="ubuntu-16.04.2-desktop-i386.iso"
URL="${COMMON}16.04/${FILE}"
;;
12)
FILE="ubuntu-16.04.2-desktop-amd64.iso"
URL="${COMMON}16.04/${FILE}"
;;
13)
FILE="ubuntu-16.04.2-server-i386.iso"
URL="${COMMON}16.04/${FILE}"
;;
14)
FILE="ubuntu-16.04.2-server-amd64.iso"
URL="${COMMON}16.04/${FILE}"
;;

15)
FILE="ubuntu-16.10-desktop-i386.iso"
URL="${COMMON}16.10/${FILE}"
;;
16)
FILE="ubuntu-16.10-desktop-amd64.iso"
URL="${COMMON}16.10/${FILE}"
;;
17)
FILE="ubuntu-16.10-server-i386.iso"
URL="${COMMON}16.10/${FILE}"
;;
18)
FILE="ubuntu-16.10-server-amd64.iso"
URL="${COMMON}16.10/${FILE}"
;;

19)
FILE="ubuntu-17.04-desktop-i386.iso"
URL="${COMMON}17.04/${FILE}"
;;
20)
FILE="ubuntu-17.04-desktop-amd64.iso"
URL="${COMMON}17.04/${FILE}"
;;
21)
FILE="ubuntu-17.04-server-i386.iso"
URL="${COMMON}17.04/${FILE}"
;;
22)
FILE="ubuntu-17.04-server-amd64.iso"
URL="${COMMON}17.04/${FILE}"
;;
esac

if [[ -z $CHOICE ]];then
downloadisos "$exit"
else
GETNAME=$CHOICE-1
getISO $1 "${ISOS[$GETNAME]}" "$FILE" "$URL"
fi

### If menu fails, drop to main menu.
downloadisos "$return"
}
distrochoice() {
### return is the default for any entry not populated with a function.
### Please use similar templates to existing.
### (select_ then distro name only in lower case.)
### Then add Just the name in downloadisos() in the DISTROS array.
### Keep the array name a singular word for simplicity.
### Can split revisions out further down.

return="No $1 entries yet or invalid selection."
case $1 in
"Debian") select_debian $1 ;;
"Fedora") select_fedora $1 ;;
"Ubuntu") select_ubuntu $1 ;;
esac
downloadisos "$return"
}
### Main function. Entry point for this file.
downloadisos() {
if ! which dialog &> /dev/null;then
echo "You must install dialog to use the interactive options."
exit 1
fi

HEIGHT=50
WIDTH=70
TITLE="Distro Selections"
MENU="Choose a Distro: "$1

### Add distro name here. Singular word for simplicity.
DISTROS=('Debian' 'Fedora' 'Ubuntu');

COUNT=0
OPTIONS=()
for i in "${DISTROS[@]}"; do
OPTIONS+=($COUNT "$i")
COUNT=$[COUNT+1]
done
OPTIONS+=($COUNT "Exit")
CHOICE_HEIGHT=$[COUNT+3]

CHOICE=$(dialog \
--no-lines \
--title "$TITLE" \
--menu "$MENU" \
$HEIGHT $WIDTH $CHOICE_HEIGHT \
"${OPTIONS[@]}" \
2>&1 >/dev/tty
)

if [[ $CHOICE = $COUNT ]];then
echo "Leaving Distro Downloader from main menu."
exit 1
fi

if [[ -z $CHOICE ]];then
echo "Cancelled Distro Downloader from main menu."
exit 1
else
distrochoice ${DISTROS[$CHOICE]}
fi

## Clean exit on menu fail.
exit 1
}
Loading