Added a shell script to generate multi-dpi css files for the mobile client.

This commit is contained in:
Ghazi Triki 2017-05-03 14:52:48 +01:00
parent 1bb56e6581
commit f87d98a6df

View File

@ -0,0 +1,41 @@
#!/bin/bash
# Install bc binayr to use this command line tool `sudo apt-get install bc`
# Then install cssbeautify-cli node.js library `sudo npm install -g cssbeautify-cli`
# npm install -g perfectionist --save
# Resolution arrays declaration
declare -a files=("ldpi" "mdpi" "hdpi" "xxhdpi" "xxxhdpi")
declare -a resolutions=("120" "160" "240" "480" "640")
declare -a ratios=("0.375" "0.5" "0.75" "1.5" "2")
# Loop over reoslution array
for i in "${!files[@]}"
do
echo "Generating file ${files[$i]}.css with ${resolutions[$i]} dpi resolution"
# Delete the old file
rm src/css/tmp.css 2> /dev/null
while IFS='' read line || [[ -n "$line" ]]; do
regex="(.*):(\s*)([0-9]*);"
# Find any digit that matches the regex
if [[ $line =~ $regex ]]
then
# Replace the match
res_value=$(echo "scale=1; ${BASH_REMATCH[3]}*${ratios[$i]}" | bc -l)
echo $line | sed "s/${BASH_REMATCH[3]}/${res_value}/g" >> src/css/tmp.css
else
# Or write the line as it is
echo $line >> src/css/tmp.css
fi
# Always use xhdpi.css as base to geenrate css files
done < src/css/xhdpi.css
# Write the new resolution to the generated file
sed -ri "s/(application-dpi:\s*)[0-9]*/\1${resolutions[$i]}/g" src/css/tmp.css
echo "Running CSS beautifier on ${files[$i]}.css"
cssbeautify-cli -i4 -f "src/css/tmp.css" -w "src/css/output.css"
# Remove the first commented line
sed '1d' src/css/output.css > "src/css/${files[$i]}.css";
rm src/css/output.css
done
# Finally delete the temporary file
rm src/css/tmp.css