diff options
author | Alan Lacerda <alacerda@alpinelinux.org> | 2015-05-08 00:07:48 +0000 |
---|---|---|
committer | Alan Lacerda <alacerda@alpinelinux.org> | 2015-05-08 00:07:48 +0000 |
commit | 037d3595e15761b3dd84a984e1e8ceae9d02d7b9 (patch) | |
tree | 211b7aa681f2b33c622bd1100bb80f1e7e0c77b9 | |
parent | 884aeb4338caf15bdc2aac9d0a1edd64c8d4c370 (diff) | |
download | setup-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-x | setup-box | 90 |
1 files changed, 70 insertions, 20 deletions
@@ -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 } |