The created packagelist can also be run on top of a Debian netinstall/mini installation, and should be working with Ubuntu and derivates, too.
Dependencies: bash, apt, dialog, sudo
Code: Select all
#!/usr/bin/env bash
[ "root" != "$USER" ] && exec sudo $0 "$@"
: ${INS=apt-get install -y -q=1}
: ${NFO=dialog --backtitle "Be patient" --title "Installing..." --textbox /tmp/list.txt 0 0}
INPUT=/tmp/menu.sh.$$
LIST=/tmp/list.txt
rm $LIST
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Application Installer" --msgbox "Welcome to the Grill! This script lets you choose base applications and create or install a package list. Hit Enter to continue..." 10 55
# You can uncomment these lines if you want a network check. For the creation of a package list it is not needed.
#
#dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Checking Internet Connection" --infobox "Please wait..." 7 45
#if ping -c 1 8.8.8.8 > /dev/null 2>&1 ; then
# sleep 1s ; dialog --clear
#else
# dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Check your network" --msgbox "Starting Ceni to configure network" 7 35; ceni ;
#fi
#dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Syncing Package Database" --yesno "Start update? (It is definitely recommended)" 5 55
#if [ "$?"!= "0" ]; then
# dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Attention" --msgbox "Don't shoot me, I'm just the messenger..." 7 55
#else
# dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Syncing Package Database" --infobox "Please wait..." 5 35
# apt-get update -q=2
#fi
function dman(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --nocancel --title "Display Manager" --menu "Note: Some DMs need manual editing of their configurations file." 20 60 15 \
A lightdm \
b "lightdm-kde" \
c "lightdm-razorqt" \
B slim \
C xdm \
D kdm \
E qingy \
G nodm \
H choosewm \
8 "Back to Main" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
A) echo "lightdm lightdm-gtk-greeter">> $LIST ;;
b) echo "lightdm lightdm-kde-greeter">> $LIST ;;
c) echo "lightdm lightdm-razorqt-greeter">> $LIST ;;
B) echo "slim">> $LIST ;;
C) echo "xdm">> $LIST ;;
D) echo "kdm">> $LIST ;;
E) echo "qingy">> $LIST ;;
G) echo "nodm">> $LIST ;;
H) echo "choosewm">> $LIST ;;
8) mainmenu;;
esac
}
function de_wm(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --nocancel --title "Desktop Environments and Window Managers" --menu "Scroll down for panel and system monitors. Note: Some WMs need a manual startup entry for the Xsessions file." 20 60 15 \
A aewm \
B aewm_plusplus \
C amiwm \
D awesome \
E blackbox \
F clfswm \
G compiz \
H ctwm \
I dwm \
J e17 \
K fluxbox \
L flwm \
M fvwm1 \
N fvwm-crystal \
O "GNOME minimal session" \
P herbstluftwm \
Q i3 \
R icewm \
S jwm \
T "KDE4 desktop" \
U larswm \
V lwm \
W LXDE \
X matchbox \
Y marco \
Z MATE \
a metacity \
b muffin \
c mutter \
d 9wm \
e notion \
f openbox \
g olwm \
h oroborus \
i pekwm \
j ratpoison \
k sapphire \
l sawfish \
m spectrwm \
n stumpwm \
o subtle \
p tinywm \
q twm \
r tritium \
s vtwm \
t w9wm \
u windowlab \
v wm2 \
w wmaker \
x wmii \
y Xfce4 \
z razorqt \
9 xmonad \
7 "tint2 panel" \
6 LXpanel \
5 "dzen2 panel" \
4 "gkrellm system monitor" \
3 "Conky system monitor" \
8 "Back to Main" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
A) echo "aewm">> $LIST ;;
B) echo "aewm++">> $LIST ;;
C) echo "amiwm">> $LIST ;;
D) echo "awesome awesome-extra ">> $LIST ;;
E) echo "blackbox ">> $LIST ;;
F) echo "clfswm ">> $LIST ;;
G) echo "compiz compiz-gtk compiz-plugins ">> $LIST ;;
H) echo "ctwm ">> $LIST ;;
I) echo "dwm ">> $LIST ;;
J) echo "e17 ">> $LIST ;;
K) echo "fluxbox fbautostart fbdesk fbpager ">> $LIST ;;
L) echo "flwm ">> $LIST ;;
M) echo "fvwm1 ">> $LIST ;;
N) echo "fvwm-crystal fvwm-icons ">> $LIST ;;
O) echo "gnome-session">> $LIST ;;
P) echo "herbstluftwm">> $LIST ;;
Q) echo "i3 ">> $LIST ;;
R) echo "icewm-experimental icewm-themes ">> $LIST ;;
S) echo "jwm">> $LIST ;;
T) echo "kdebase-workspace lightdm-kde-greeter ">> $LIST ;;
U) echo "larswm ">> $LIST ;;
V) echo "lwm ">> $LIST ;;
W) echo "lxde lxappearance-obconf ">> $LIST ;;
X) echo "matchbox matchbox-panel matchbox-panel-manager matchbox-window-manager matchbox-desktop ">> $LIST ;;
Y) echo "marco ">> $LIST ;;
Z) echo "mate-desktop-environment ">> $LIST ;;
a) echo "metacity metacity-themes ">> $LIST ;;
b) echo "muffin ">> $LIST ;;
c) echo "mutter">> $LIST ;;
d) echo "9wm 9menu ">> $LIST ;;
e) echo "notion ">> $LIST ;;
f) echo "openbox obconf obmenu ">> $LIST ;;
g) echo "olwm ">> $LIST ;;
h) echo "oroborus ">> $LIST ;;
i) echo "pekwm ">> $LIST ;;
j) echo "ratpoison ratmenu ">> $LIST ;;
k) echo "sapphire ">> $LIST ;;
l) echo "sawfish sawfish-themes sawfish-merlin-ugliness fspanel ">> $LIST ;;
m) echo "spectrwm ">> $LIST ;;
n) echo "stumpwm ">> $LIST ;;
p) echo "tinywm ">> $LIST ;;
q) echo "twm">> $LIST ;;
r) echo "tritium ">> $LIST ;;
s) echo "vtwm">> $LIST ;;
t) echo "w9wm ">> $LIST ;;
o) echo "subtle ">> $LIST ;;
u) echo "windowlab ">> $LIST ;;
v) echo "wm2 ">> $LIST ;;
w) echo "wmaker wmbattery wmbiff wmcalclock wmcdplay wmcpuload wmforkplop wmifs wmmemload wmmixer wmmoonclock wmnet wmrack wmwork ">> $LIST ;;
x) echo "wmii ">> $LIST ;;
y) echo "xfce4 xfwm4-themes">> $LIST ;;
z) echo "razorqt">> $LIST ;;
9) echo "xmonad xmobar">> $LIST ;;
8) mainmenu;;
7) echo "tint2 ">> $LIST ;;
6) echo "lxpanel ">> $LIST ;;
5) echo "dzen2 ">> $LIST ;;
4) echo "gkrellm gkrellm-mailwatch gkrellm-reminder gkrellm-volume gkrellm-x86info gkrellm-xkb gkrellmoon gkrellmwireless gkrellshoot gkrelltop gkrellweather gkrellm-ibam ">> $LIST ;;
esac
}
function termin(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Terminal Emulator" --menu "Select your default terminal. xterm is already provided." 20 60 15 \
A aterm \
B eterm \
C evilvte \
D fbterm \
E guake \
F konsole \
G kterm \
H lxterminal \
I mlterm \
J mrxvt \
K roxterm \
L rxvt \
M "rxvt-ml" \
N "rxvt-unicode" \
O "rxvt-unicode-256color" \
P "rxvt-unicode-lite" \
Q "rxvt-beta" \
R sakura \
S stterm \
T terminator \
U termit \
V tilda \
W "xfce4-terminal" \
X xvt \
Y qterm \
Z tmux \
a byobu \
b "GNU screen" \
8 "Back to Main" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
A) echo "aterm ">> $LIST ;;
B) echo "eterm ">> $LIST ;;
C) echo "evilvte ">> $LIST ;;
D) echo "fbterm ">> $LIST ;;
E) echo "guake ">> $LIST ;;
F) echo "konsole ">> $LIST ;;
G) echo "kterm ">> $LIST ;;
H) echo "lxterminal ">> $LIST ;;
I) echo "mlterm ">> $LIST ;;
J) echo "mrxvt ">> $LIST ;;
K) echo "roxterm ">> $LIST ;;
L) echo "rxvt ">> $LIST ;;
M) echo "rxvt-ml ">> $LIST ;;
N) echo "rxvt-unicode ">> $LIST ;;
O) echo "rxvt-unicode-256color ">> $LIST ;;
P) echo "rxvt-unicode-lite ">> $LIST ;;
Q) echo "rxvt-beta ">> $LIST ;;
R) echo "sakura ">> $LIST ;;
S) echo "stterm ">> $LIST ;;
T) echo "terminator ">> $LIST ;;
U) echo "termit ">> $LIST ;;
V) echo "tilda ">> $LIST ;;
W) echo "xfce4-terminal ">> $LIST ;;
X) echo "xvt ">> $LIST ;;
Y) echo "qterm ">> $LIST ;;
Z) echo "tmux ">> $LIST ;;
a) echo "byobu ">> $LIST ;;
b) echo "screen ">> $LIST ;;
8) mainmenu;;
esac
}
function brows(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Web Browser" --menu "Select your Web Browser. Roaster and links2 are already provided. Some lightweight browsers need a manual entry in your root menu." 20 60 15 \
A arora \
B chromium \
C conkeror \
D dwb \
E edbrowse \
F elinks \
G epiphany \
H iceweasel \
I "iceape suite" \
J luakit \
K midori \
L netrik \
M netsurf \
N rekonq \
O surf \
P hv3 \
Q w3m \
R xxxterm \
S qupzilla \
T lynx \
U uzbl \
8 "Back to Main" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
A) echo "arora ">> $LIST ;;
B) echo "chromium chromium-codecs-ffmpeg chromium-l10n ">> $LIST ;;
C) echo "conkeror ">> $LIST ;;
D) echo "dwb ">> $LIST ;;
E) echo "edbrowse ">> $LIST ;;
F) echo "elinks ">> $LIST ;;
G) echo "epiphany ">> $LIST ;;
H) echo "iceweasel xul-ext-adblock-plus xul-ext-adblock-element-hiding-helper ">> $LIST ;;
I) echo "iceape ">> $LIST ;;
J) echo "luakit ">> $LIST ;;
K) echo "midori ">> $LIST ;;
L) echo "netrik ">> $LIST ;;
M) echo "netsurf ">> $LIST ;;
N) echo "rekonq ">> $LIST ;;
O) echo "surf ">> $LIST ;;
P) echo "hv3 ">> $LIST ;;
Q) echo "w3m ">> $LIST ;;
R) echo "xxxterm ">> $LIST ;;
S) echo "qupzilla ">> $LIST ;;
T) echo "lynx ">> $LIST ;;
U) echo "uzbl ">> $LIST ;;
8) mainmenu;;
esac
}
function fileman(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "File Manager" --menu "Pick a file manager. Ranger and MC are already provided." 20 60 15 \
A andromeda \
B bsc \
C gentoo \
D "gnome-commander" \
E "gpe-filemanager" \
F "rox-filer" \
G thunar \
H nautilus \
I konqueror \
J dolphin \
K xfe \
L xfm \
M worker \
N pcmanfm \
O spacefm \
P qtfm \
R vifm \
8 "Back to Main" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
A) echo "andromeda">> $LIST ;;
B) echo "bsc">> $LIST ;;
C) echo "gentoo">> $LIST ;;
D) echo "gnome-commander">> $LIST ;;
E) echo "gpe-filemanager">> $LIST ;;
F) echo "rox-filer">> $LIST ;;
G) echo "thunar thunar-media-tags-plugin thunar-archive-plugin thunar-vcs-plugin thunar-volman">> $LIST ;;
H) echo "nautilus nautilus-actions nautilus-image-converter nautilus-sendto nautilus-share nautilus-emblems">> $LIST ;;
I) echo "konqueror konq-plugins">> $LIST ;;
J) echo "dolphin konq-plugins">> $LIST ;;
K) echo "xfe xfe-i18n xfe-themes">> $LIST ;;
L) echo "xfm">> $LIST ;;
M) echo "worker">> $LIST ;;
N) echo "pcmanfm">> $LIST ;;
O) echo "libudev-dev && wget -c http://linuxbbq.org/incoming/udevil.deb && wget -c http://linuxbbq.org/incoming/spacefm.deb && dpkg -i udevil.deb && dpkg -i spacefm.deb && rm udevil.deb && rm spacefm.deb && gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor && gtk-update-icon-cache -q -t -f /usr/share/icons/Faenza">> $LIST ;;
P) echo "qtfm">> $LIST ;;
R) echo "vifm">> $LIST ;;
8) mainmenu;;
esac
}
function texted(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Text Editors and IDE" --menu "Pick an editor. nano, mcedit and leafpad are already provided." 20 60 15 \
A emacs \
B vim \
C scite \
D tea \
E geany \
F mousepad \
G medit \
H nedit \
I levee \
J xjed \
K joe \
L jupp \
M jed \
e jedit \
N kate \
O kwrite \
P gwrite \
R gedit \
S fte \
T ed \
U cream \
V elvis \
W efte \
X editra \
Y juffed \
Z ne \
7 scribes \
6 tea \
5 vile \
4 xvile \
3 x2 \
a axe \
b yudit \
c pyroom \
d focuswriter \
8 "Back to Main" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
A) echo "emacs">> $LIST ;;
B) echo "vim">> $LIST ;;
C) echo "scite">> $LIST ;;
D) echo "tea">> $LIST ;;
E) echo "geany">> $LIST ;;
F) echo "mousepad">> $LIST ;;
G) echo "medit">> $LIST ;;
H) echo "nedit">> $LIST ;;
I) echo "levee">> $LIST ;;
J) echo "xjed">> $LIST ;;
K) echo "joe">> $LIST ;;
L) echo "jupp">> $LIST ;;
M) echo "jed">> $LIST ;;
N) echo "kate">> $LIST ;;
O) echo "kwrite">> $LIST ;;
P) echo "gwrite">> $LIST ;;
R) echo "gedit">> $LIST ;;
S) echo "fte">> $LIST ;;
T) echo "ed">> $LIST ;;
U) echo "cream">> $LIST ;;
V) echo "elvis">> $LIST ;;
W) echo "efte">> $LIST ;;
X) echo "editra">> $LIST ;;
Y) echo "juffed">> $LIST ;;
Z) echo "ne">> $LIST ;;
e) echo "jedit ">> $LIST ;;
7) echo "scribes">> $LIST ;;
6) echo "tea">> $LIST ;;
5) echo "vile">> $LIST ;;
4) echo "xvile">> $LIST ;;
3) echo "x2">> $LIST ;;
a) echo "axe">> $LIST ;;
b) echo "yudit">> $LIST ;;
c) echo "pyroom">> $LIST ;;
d) echo "focuswriter">> $LIST ;;
8) mainmenu;;
esac
}
function office(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Office Applications" --menu "Here you can select a word processor or spreadsheet app. For LibreOffice please add l10n localization if needed." 20 60 15 \
A abiword \
B gnumeric \
C lyx \
D "libreoffice-writer" \
E "libreoffice-calc" \
F "libreoffice full suite" \
G calligra \
H "texlive-full" \
I luatex \
J zim \
K texworks \
L texmaker \
M texstudio \
N rubber \
O latexila \
P kile \
Q gummi \
R pdfviewer \
S zathura \
T xpdf \
U mupdf \
V okular \
W calibre \
X epdfview \
Y evince \
Z katarakt \
a scribus \
b "scribus-ng" \
c jscribble \
d xournal \
8 "Back to Main" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
A) echo "abiword">> $LIST ;;
B) echo "gnumeric">> $LIST ;;
C) echo "lyx">> $LIST ;;
D) echo "libreoffice-writer">> $LIST ;;
E) echo "libreoffice-calc">> $LIST ;;
F) echo "libreoffice full suite">> $LIST ;;
G) echo "calligra">> $LIST ;;
H) echo "texlive-full">> $LIST ;;
I) echo "luatex">> $LIST ;;
J) echo "zim">> $LIST ;;
K) echo "texworks">> $LIST ;;
L) echo "texmaker">> $LIST ;;
M) echo "texstudio">> $LIST ;;
N) echo "rubber">> $LIST ;;
O) echo "latexila">> $LIST ;;
P) echo "kile">> $LIST ;;
Q) echo "gummi">> $LIST ;;
R) echo "pdfviewer">> $LIST ;;
S) echo "zathura">> $LIST ;;
T) echo "xpdf">> $LIST ;;
U) echo "mupdf">> $LIST ;;
V) echo "okular">> $LIST ;;
W) echo "calibre">> $LIST ;;
X) echo "epdfview">> $LIST ;;
Y) echo "evince">> $LIST ;;
Z) echo "katarakt">> $LIST ;;
a) echo "scribus">> $LIST ;;
b) echo "scribus-ng">> $LIST ;;
c) echo "jscribble">> $LIST ;;
d) echo "xournal">> $LIST ;;
8) mainmenu;;
esac
}
function graphics_photo(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Graphics and Photo Editing" --menu "Here you can select image viewers and editors." 20 60 15 \
a darktable \
A gimp \
B inkscape \
C fotoxx \
D shotwell \
E mirage \
F geeqie \
G showfoto \
H ristretto \
I gpicview \
J xpaint \
K gthumb \
L gpaint \
M digikam \
N "f-spot" \
8 "Back to Main" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
a) echo "darktable">> $LIST ;;
A) echo "gimp">> $LIST ;;
B) echo "inkscape">> $LIST ;;
C) echo "fotoxx">> $LIST ;;
D) echo "shotwell">> $LIST ;;
E) echo "mirage">> $LIST ;;
F) echo "geeqie">> $LIST ;;
G) echo "showfoto">> $LIST ;;
H) echo "ristretto">> $LIST ;;
I) echo "gpicview">> $LIST ;;
J) echo "xpaint">> $LIST ;;
K) echo "gthumb">> $LIST ;;
L) echo "gpaint">> $LIST ;;
M) echo "digikam">> $LIST ;;
N) echo "f-spot">> $LIST ;;
8) mainmenu
esac
}
function defshell(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Shells" --menu "You are using $SHELL" 20 60 15 \
a zsh \
A ksh \
B mksh \
C yash \
D csh \
E "git-sh" \
F "switch-sh" \
G aptsh \
H dsh \
I fish \
J fizsh \
K ssh \
L posh \
M sash \
N rush \
8 "Back to Main" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
a) echo "zsh">> $LIST ;;
A) echo "ksh">> $LIST ;;
B) echo "mksh">> $LIST ;;
C) echo "yash">> $LIST ;;
D) echo "csh">> $LIST ;;
E) echo "git-sh">> $LIST ;;
F) echo "switch-sh">> $LIST ;;
G) echo "aptsh">> $LIST ;;
H) echo "dsh">> $LIST ;;
I) echo "fish">> $LIST ;;
J) echo "fizsh">> $LIST ;;
K) echo "ssh">> $LIST ;;
L) echo "posh">> $LIST ;;
M) echo "sash">> $LIST ;;
N) echo "rush">> $LIST ;;
8) mainmenu
esac
}
function sound_video(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Sound and Video" --menu "Pick your sound system and media players. mplayer2 and moc are already provided." 20 60 15 \
A "ALSA only" \
B pulseaudio \
C amarok \
D "ario + mpd" \
E audacious \
F bangarang \
G banshee \
H cmus \
I exaile \
J freetuxtv \
K gmerlin \
L "gnome-mplayer" \
M gxine \
N gst123 \
O kaffeine \
P juk \
Q dragonplayer \
R ffmpeg \
S minirok \
T "ncmpcpp + mpd" \
U mencoder \
V parole \
W totem \
X vlc \
Y xmms2 \
a xnoise \
b guayadeque \
c "cantata + mpd" \
d clementine \
e radiotray \
f "qmpdclient + mpd" \
g plait \
h "pygmy + mpd" \
i musique \
j "mpc + mpd" \
k lxmusic \
l juke \
m "gimmix + mpd" \
n bluemindo \
o aqualung \
p kdenlive \
q openshot \
r kino \
s flowblade \
t betaradio \
8 "Back to Main" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
A) echo "alsaplayer-alsa alsa-tools alsa-base alsa-firmware-loaders ">> $LIST ;;
B) echo "pulseaudio pulseaudio-utils pavumeter pavucontrol paman paprefs ">> $LIST ;;
C) echo "amarok">> $LIST ;;
D) echo "ario + mpd">> $LIST ;;
E) echo "audacious">> $LIST ;;
F) echo "bangarang">> $LIST ;;
G) echo "banshee">> $LIST ;;
H) echo "cmus">> $LIST ;;
I) echo "exaile">> $LIST ;;
J) echo "freetuxtv">> $LIST ;;
K) echo "gmerlin">> $LIST ;;
L) echo "gnome-mplayer">> $LIST ;;
M) echo "gxine">> $LIST ;;
N) echo "gst123">> $LIST ;;
O) echo "kaffeine">> $LIST ;;
P) echo "juk">> $LIST ;;
Q) echo "dragonplayer">> $LIST ;;
R) echo "ffmpeg">> $LIST ;;
S) echo "minirok">> $LIST ;;
T) echo "ncmpcpp mpd">> $LIST ;;
U) echo "mencoder">> $LIST ;;
V) echo "parole">> $LIST ;;
W) echo "totem">> $LIST ;;
X) echo "vlc">> $LIST ;;
Y) echo "xmms2">> $LIST ;;
a) echo "xnoise">> $LIST ;;
b) echo "guayadeque">> $LIST ;;
c) echo "cantata mpd">> $LIST ;;
d) echo "clementine">> $LIST ;;
e) echo "radiotray">> $LIST ;;
f) echo "qmpdclient mpd">> $LIST ;;
g) echo "plait">> $LIST ;;
h) echo "pygmy mpd">> $LIST ;;
i) echo "musique">> $LIST ;;
j) echo "mpc mpd">> $LIST ;;
k) echo "lxmusic">> $LIST ;;
l) echo "juke">> $LIST ;;
m) echo "gimmix mpd">> $LIST ;;
n) echo "bluemindo">> $LIST ;;
o) echo "aqualung">> $LIST ;;
p) echo "kdenlive">> $LIST ;;
q) echo "openshot">> $LIST ;;
r) echo "kino">> $LIST ;;
s) echo "flowblade">> $LIST ;;
t) echo "betaradio">> $LIST ;;
8) mainmenu;;
esac
}
function printing(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "CUPS Printing System" --yesno "Install the CUPS printing system?" 20 60
if [ "$?" = "0" ]; then
echo "cups cups-pdf system-config-printer printer-driver-hpijs ">> $LIST
fi
mainmenu
}
function devel_tools(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Tools for Developers" --yesno "Would you like to install development tools? If you choose Yes, following packages will be installed:
openssh-server openssh-server git git git-gui git-gui git-svn git-svn git-email git-email mercurial mercurial subversion subversion subversion-tools subversion-tools bzr bzr bzrtools bzrtools cvs cvs thunar-vcs-plugin thunar-vcs-plugin build-essential build-essential debhelper debhelper cdbs cdbs dh-make dh-make diffutils diffutils patch patch gnupg gnupg fakeroot fakeroot lintian lintian devscripts devscripts dpatch dpatch dput dput" 20 60;
if [ "$?" = "0" ]; then
echo "openssh-server openssh-server git git git-gui git-gui git-svn git-svn git-email git-email mercurial mercurial subversion subversion subversion-tools subversion-tools bzr bzr bzrtools bzrtools cvs cvs thunar-vcs-plugin thunar-vcs-plugin build-essential build-essential debhelper debhelper cdbs cdbs dh-make dh-make diffutils diffutils patch patch gnupg gnupg fakeroot fakeroot lintian lintian devscripts devscripts dpatch dpatch dput dput ">> $LIST
fi
mainmenu
}
function emulat(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Emulators and virtual machines" --menu "Pick your poison." 20 60 15 \
A wine \
B playonlinux \
C virtualbox \
D qemu \
E virtualbricks \
F bochs \
G dosbox \
8 "Back to Main" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
A) echo "wine winetricks">> $LIST ;;
B) echo "playonlinux">> $LIST ;;
C) echo "virtualbox virtualbox-dkms virtualbox-qt virtualbox-source virtualbox-guest-additions-iso">> $LIST ;;
D) echo "qemu qemu-keymaps qemu-system qemu-user qemu-utils qemu-launcher qemuctl">> $LIST ;;
E) echo "virtualbricks">> $LIST ;;
F) echo "bochs bochs-sdl bochs-svga bochs-term bochs-x bochsbios sb16ctrl-bochs vga-bios">> $LIST ;;
G) echo "dosbox">> $LIST ;;
8) mainmenu;;
esac
}
function communic(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Communication and Chat Tools" --menu "Select your IM and IRC client." 20 60 15 \
A pidgin \
B empathy \
C kopete \
D quassel \
E konversation \
F mcabber \
G irssi \
H weechat \
I swift-im \
J psi \
K prosody \
L finch \
M emesene \
N amsn \
I centerim \
J bitlbee \
K ayttm \
L barnowl \
M coccinella \
N ekg2 \
O jitsi \
8 "Back to Main" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
A) echo "pidgin">> $LIST ;;
B) echo "empathy">> $LIST ;;
C) echo "kopete">> $LIST ;;
D) echo "quassel">> $LIST ;;
E) echo "konversation">> $LIST ;;
F) echo "mcabber">> $LIST ;;
G) echo "irssi">> $LIST ;;
H) echo "weechat">> $LIST ;;
I) echo "swift-im">> $LIST ;;
J) echo "psi">> $LIST ;;
K) echo "prosody">> $LIST ;;
L) echo "finch">> $LIST ;;
M) echo "emesene">> $LIST ;;
N) echo "amsn">> $LIST ;;
I) echo "centerim">> $LIST ;;
J) echo "bitlbee">> $LIST ;;
K) echo "ayttm">> $LIST ;;
L) echo "barnowl">> $LIST ;;
M) echo "coccinella">> $LIST ;;
N) echo "ekg2">> $LIST ;;
O) echo "jitsi">> $LIST ;;
8) mainmenu;;
esac
}
function netman(){
dialog --backtitle "LinuxBBQ - Roast Your Own" --title "Network Management" --menu "Select your network manager and additional services." 20 60 15 \
A wicd \
a "wicd-cli" \
B "network-manager" \
C "network-manager-gnome" \
D vpnc \
d "pptp-linux" \
E openswan \
F strongswan \
G "l2tp-ipsec" \
H kvpnc \
I "ipsec-tools" \
J openconnect \
K "network-manager-gnome full set" \
L openvpn \
M openssl \
8 "Back to Main" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
A) echo "wicd">> $LIST ;;
a) echo "wicd-cli wicd-curses">> $LIST ;;
B) echo "network-manager">> $LIST ;;
K) echo "network-manager network-manager-gnome network-manager-vpnc-gnome network-manager-iodine-gnome network-manager-openvpn-gnome network-manager-pptp-gnome network-manager-strongswan-gnome network-manager-openconnect-gnome ">> $LIST ;;
D) echo "vpnc">> $LIST ;;
d) echo "pptp-linux">> $LIST ;;
E) echo "openswan">> $LIST ;;
F) echo "strongswan">> $LIST ;;
G) echo "l2tp-ipsec-vpn">> $LIST ;;
H) echo "kvpn">> $LIST ;;
I) echo "ipsec-tools">> $LIST ;;
J) echo "openconnect">> $LIST ;;
C) echo "network-manager-gnome network-manager-gnome ">> $LIST ;;
L) echo "openvpn">> $LIST ;;
M) echo "openssl">> $LIST ;;
8) mainmenu;;
esac
}
function checkout(){
dialog --clear --backtitle "LinuxBBQ - Roast Your Own" --title "Selection complete" --yes-label "Get it" --no-label "Script it" --yesno "Should we apt-get the list or save it as build script" 0 0
if [ "$?" = "0" ]; then #apt-get it
$NFO ; sudo apt-get install -y -qq $(< /tmp/list.txt) ; exit 0
else
echo "You find the list in $LIST" ; exit 0 ### use the list for a build script
fi
mainmenu
}
function mainmenu(){
while true
do
dialog --clear --backtitle "LinuxBBQ - Roast Your Own" --title "Base Applications Installer" --menu "Choose the Package Group" 21 50 17 \
a "Display Manager" \
c "Edit xinitrc" \
b Shell \
A "Window Managers and Desktop" \
B "Terminal Emulator" \
C "File Manager" \
D "Web Browser" \
E "Text Editor" \
F "Office Apps" \
G "Graphics and Photo" \
H "Sound and Video" \
J "CUPS Printing System" \
K "Development Tools" \
L Emulation \
M Communication \
N "Network Management" \
q Checkout \
W "Create ISO from Install" \
X "Back to shell" 2>"${INPUT}"
menuitem=$(<"${INPUT}")
case $menuitem in
a) dman ;;
c) nano /home/$USER/.xinitrc ;;
b) defshell ;;
A) de_wm ;;
B) termin ;;
C) fileman ;;
D) brows ;;
E) texted ;;
F) office ;;
G) graphics_photo ;;
H) sound_video ;;
J) printing ;;
K) devel_tools ;;
L) emulat ;;
M) communic ;;
N) netman ;;
W) bbqsnapshot ;;
q) checkout ;;
X) cp /home/$USER/.profile_good /home/$USER/.profile ; exit
esac
# The copying of profile.good to profile is to prevent roastyourown being
# started after every boot.
done
}
mainmenu
exit