summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Lacerda <alacerda@alpinelinux.org>2015-05-08 00:07:48 +0000
committerAlan Lacerda <alacerda@alpinelinux.org>2015-05-08 00:07:48 +0000
commit037d3595e15761b3dd84a984e1e8ceae9d02d7b9 (patch)
tree211b7aa681f2b33c622bd1100bb80f1e7e0c77b9
parent884aeb4338caf15bdc2aac9d0a1edd64c8d4c370 (diff)
downloadsetup-box-037d3595e15761b3dd84a984e1e8ceae9d02d7b9.tar.bz2
setup-box-037d3595e15761b3dd84a984e1e8ceae9d02d7b9.tar.xz
setup-box: many improvementsv0.1.0_rc3
added -L option to list all groups avaliable option -l lists all subgroups avaliable On desktop installations we create a user user
-rwxr-xr-xsetup-box90
1 files changed, 70 insertions, 20 deletions
diff --git a/setup-box b/setup-box
index d989d01..59aaed1 100755
--- a/setup-box
+++ b/setup-box
@@ -22,6 +22,7 @@ final_serv=""
### File that contains all desktop-related groups
desktop_json="$JSON_DIR/desktop.json"
show_error="0"
+create_user="0"
### End of Variables definition
##
#
@@ -39,7 +40,8 @@ Options:
-d Specify one desktop environment
-g Install a full group
-h Show this help
- -l List all avaliable groups
+ -L List all avaliable groups
+ -l List all avaliable subgroups
-s Install a specific subgroup
-v Show any error - just in case
-V Show $(basename $0) version
@@ -49,14 +51,15 @@ Desktop:
openbox
xfce
-Subgroups:
- pentest.voip
- pentest.forensics
-
-Groups (see -l option for a complet list):
+Groups (see -L option for a complet list):
desktop-extras
- gparted
pentest
+ systools
+
+Subgroups (see -l option for a complet list):
+ pentest.voip
+ pentest.forensics
+ systools.disk
__EOF__
exit 1
@@ -194,13 +197,13 @@ search_desktop() {
|| echo "psmouse" >> /etc/modules
}
-# Called by -l option
-list_groups() {
+# Called by -L option
+list_meta_groups() {
cat <<__EOF__
$(basename $0) $VERSION
-Avaliables groups are:
+Avaliables groups are:
__EOF__
for i in $(echo $json_files | sed 's/.json//g' | tr ' ' \\n ); do
@@ -209,6 +212,32 @@ __EOF__
exit 1
}
+list_sub_groups() {
+ cat <<__EOF__
+
+$(basename $0) $VERSION
+
+Avaliables subgroups are:
+__EOF__
+
+ for file in $json_files; do
+ for i in $(echo $file | sed 's/.json//g' | tr ' ' \\n ); do
+ echo $(basename $i):
+ for sg in $(cat $file \
+ | jq '.[][]' \
+ | grep : \
+ | tr '"' ' ' \
+ | egrep -v "services|packages" \
+ | tr ':' ' ' \
+ | tr '[' ' ' \
+ | sed 's/ //g'); do
+ echo -e "\t$sg"
+ done
+ done
+ done
+ exit 1
+}
+
# Function to remove duplicated packages from the list of packages
# to be installed - just a clean up
optimize_pack() {
@@ -255,23 +284,35 @@ main () {
# Harvesting for all valid JSON files
# Getting ready to be used...
search_files
-
+
# If there is any argument... let's work
- while getopts "d:s:g:hlvV" opt ; do
+ while getopts "d:s:g:hLlvV" opt ; do
case $opt in
- d) search_desktop "$OPTARG";;
- s) search_sub_group "$OPTARG";;
- g) search_meta_group "$OPTARG";;
- l) list_groups;;
- v) show_error="1";;
- V) echo $(basename $0) $VERSION
+ d)
+ create_user="1"
+ search_desktop "$OPTARG";;
+ s)
+ search_sub_group "$OPTARG";;
+ g)
+ search_meta_group "$OPTARG";;
+ L)
+ list_meta_groups;;
+ l)
+ list_sub_groups;;
+ v)
+ show_error="1";;
+ V)
+ echo $(basename $0) $VERSION
exit 1;;
- h) usage;;
- *) usage;;
+ h)
+ usage;;
+ *)
+ usage;;
esac
done
shift `expr $OPTIND - 1`
+
# Packages to be installed (including services)
optimize_pack "$final_pack"
apk add $final_pack
@@ -280,6 +321,15 @@ main () {
optimize_serv "$final_serv"
add_services $final_serv
+ if [ "$create_user" == "1" ]; then
+ new_user="alpine"
+ echo -e "\033[1;33m****************************************************"
+ echo -e "We've created a new user for you: $new_user"
+ echo -e "****************************************************"
+ adduser -h /home/$new_user -g "Alpine Linux User" $new_user
+ echo -e "\033[0m"
+ fi
+
# Removing dependencies
del_deps
}