forked from jan-warchol/selenized
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall.sh
executable file
·167 lines (140 loc) · 3.88 KB
/
install.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#!/usr/bin/env bash
dir=$(dirname "$0")
declare -a schemes
schemes=($(cd $dir/colors && echo * && cd - > /dev/null))
source $dir/src/tools.sh
source $dir/src/profiles.sh
show_help() {
echo
echo "Usage"
echo
echo " install.sh [-h|--help] \\"
echo " (-s <scheme>|--scheme <scheme>|--scheme=<scheme>) \\"
echo " (-p <profile>|--profile <profile>|--profile=<profile>)"
echo
echo "Options"
echo
echo " -h, --help"
echo " Show this information"
echo " -s, --scheme"
echo " Color scheme to be used"
echo " -p, --profile"
echo " Gnome Terminal profile to overwrite"
echo
}
validate_scheme() {
local profile=$1
in_array $scheme "${schemes[@]}" || die "$scheme is not a valid scheme" 2
}
set_profile_colors() {
local profile=$1
local scheme=$2
local scheme_file=$dir/colors/$scheme
. $scheme_file
if [ "$newGnome" = "1" ]
then local profile_path=$dconfdir/$profile
# set color palette
dconf write $profile_path/palette "$(echo $PALETTE | to_dconf)"
# set foreground, background and highlight color
dconf write $profile_path/bold-color "'$BOLD'"
dconf write $profile_path/background-color "'$BACKGROUND'"
dconf write $profile_path/foreground-color "'$FOREGROUND'"
# make sure the profile is set to not use theme colors
dconf write $profile_path/use-theme-colors "false"
# set highlighted color to be different from foreground color
dconf write $profile_path/bold-color-same-as-fg "false"
else
local profile_path=$gconfdir/$profile
# set color palette
gconftool-2 -s -t string $profile_path/palette "$(echo $PALETTE | to_gconf)"
# set foreground, background and highlight color
gconftool-2 -s -t string $profile_path/bold_color $BOLD
gconftool-2 -s -t string $profile_path/background_color $BACKGROUND
gconftool-2 -s -t string $profile_path/foreground_color $FOREGROUND
# make sure the profile is set to not use theme colors
gconftool-2 -s -t bool $profile_path/use_theme_colors false
# set highlighted color to be different from foreground color
gconftool-2 -s -t bool $profile_path/bold_color_same_as_fg false
fi
}
interactive_help() {
echo
echo -e "\e[1;39mWarning!\e[0m"
echo -e "This will permanently overwrite colors in selected profile - there is no undo."
echo -e "Consider creating a new profile before installing Selenized."
echo
}
interactive_select_scheme() {
echo "Please select Selenized variant:"
select scheme
do
if [[ -z $scheme ]]
then
die "ERROR: Invalid selection -- ABORTING!" 2
fi
break
done
echo
}
interactive_confirm() {
local confirmation
echo "You have selected:"
echo
echo " Scheme: Selenized $scheme"
echo " Profile: $(get_profile_name $profile) ($profile)"
echo
echo "Are you sure you want to overwrite the selected profile?"
echo -n "(YES to continue) "
read confirmation
if [[ $(echo $confirmation | tr '[:lower:]' '[:upper:]') != YES ]]
then
die "ERROR: Confirmation failed -- ABORTING!"
fi
echo "Confirmation received -- applying settings"
}
while [ $# -gt 0 ]
do
case $1 in
-h | --help )
show_help
exit 0
;;
--scheme=* )
scheme=${1#*=}
;;
-s | --scheme )
scheme=$2
shift
;;
--profile=* )
profile=${1#*=}
;;
-p | --profile )
profile=$2
shift
;;
esac
shift
done
if [[ -z "$scheme" ]] || [[ -z "$profile" ]]
then
interactive_help
fi
if [[ -n "$scheme" ]]
then validate_scheme $scheme
else
interactive_select_scheme "${schemes[@]}"
fi
if [[ -n "$profile" ]]
then if [ "$newGnome" = "1" ]
then profile="$(get_uuid "$profile")"
fi
validate_profile $profile
else
if [ "$newGnome" = "1" ]
then check_empty_profile
fi
interactive_select_profile "${profiles[@]}"
interactive_confirm
fi
set_profile_colors $profile $scheme