diff --git a/.github/workflows/validate/Dockerfile b/.github/workflows/validate/Dockerfile index 3ad06a09..576ca9c3 100644 --- a/.github/workflows/validate/Dockerfile +++ b/.github/workflows/validate/Dockerfile @@ -1,4 +1,4 @@ FROM alpine -RUN apk add --no-cache imagemagick bash +RUN apk add --no-cache imagemagick bash git optipng COPY validate.sh /validate.sh ENTRYPOINT ["/validate.sh"] diff --git a/.github/workflows/validate/validate.sh b/.github/workflows/validate/validate.sh index ed9b9c7f..e5b4b68b 100755 --- a/.github/workflows/validate/validate.sh +++ b/.github/workflows/validate/validate.sh @@ -17,22 +17,15 @@ function error() { fi } +# Clone MDI icons +rm -f -r mdi +git clone --depth=1 https://github.com/Templarian/MaterialDesign mdi + # Find all files in the src folder (should contain only images) while read image; do - # Read properties from image - properties=($(identify -format "%w %h %m" "${image}")) - if [[ "$?" -ne 0 ]]; then - error "${image}" "Could not read image file" - continue - fi - - # Extract properties into variables filename=$(basename "${image}") folderpath=$(dirname "${image}") foldername=$(basename "${folderpath}") - width="${properties[0]}" - height="${properties[1]}" - type="${properties[2]}" # Underscore folders are special cases. Instead one should symlink between integration domains [[ "${foldername}" == _* && "${foldername}" != "_placeholder" && "${foldername}" != "_homeassistant" ]] \ @@ -43,6 +36,37 @@ while read image; do && [[ -d "custom_integrations/${foldername}" ]] \ && error "${folderpath}" "The integration ${foldername} exists in both core and custom integrations. Core wins." + # If icon filename is icon.txt + if [[ "${filename}" == "icon.txt" ]]; then + mdi=$(<${image}) + mdi="${mdi##mdi:}" + + # Check if the icon exists + [[ -f "mdi/svg/${mdi}.svg" ]] \ + || error "${image}" "The icon 'mdi:${mdi}' does not exist" + + # Ensure icon.png and icon@2x.png are missing + [[ -f "${folderpath}/icon.png" ]] \ + && error "${image}" "icon.png exists while icon.txt was provided" + [[ -f "${folderpath}/icon@2x.png" ]] \ + && error "${image}" "icon@2x.png exists while icon.txt was provided" + + # Continue to next image + continue + fi + + # Read properties from image + properties=($(identify -format "%w %h %m" "${image}")) + if [[ "$?" -ne 0 ]]; then + error "${image}" "Could not read image file" + continue + fi + + # Extract properties into variables + width="${properties[0]}" + height="${properties[1]}" + type="${properties[2]}" + # Ensure file is actually a PNG file [[ "${type}" != "PNG" ]] \ && error "${image}" "Invalid file type '${type}' for file" diff --git a/.gitignore b/.gitignore index 76222ee8..ecb22f2f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ build/* +mdi/* # macOS Finder .DS_Store diff --git a/core_integrations/analytics/icon.png b/core_integrations/analytics/icon.png deleted file mode 100644 index f561b839..00000000 Binary files a/core_integrations/analytics/icon.png and /dev/null differ diff --git a/core_integrations/analytics/icon.txt b/core_integrations/analytics/icon.txt new file mode 100644 index 00000000..9d45df3c --- /dev/null +++ b/core_integrations/analytics/icon.txt @@ -0,0 +1 @@ +mdi:chart-timeline-variant diff --git a/core_integrations/analytics/icon@2x.png b/core_integrations/analytics/icon@2x.png deleted file mode 100644 index 200a6f19..00000000 Binary files a/core_integrations/analytics/icon@2x.png and /dev/null differ diff --git a/core_integrations/api/icon.png b/core_integrations/api/icon.png deleted file mode 100644 index 43b720d5..00000000 Binary files a/core_integrations/api/icon.png and /dev/null differ diff --git a/core_integrations/api/icon.txt b/core_integrations/api/icon.txt new file mode 100644 index 00000000..be5dd90f --- /dev/null +++ b/core_integrations/api/icon.txt @@ -0,0 +1 @@ +mdi:api diff --git a/core_integrations/api/icon@2x.png b/core_integrations/api/icon@2x.png deleted file mode 100644 index 692090fa..00000000 Binary files a/core_integrations/api/icon@2x.png and /dev/null differ diff --git a/core_integrations/auth/icon.png b/core_integrations/auth/icon.png deleted file mode 100644 index 166cd8de..00000000 Binary files a/core_integrations/auth/icon.png and /dev/null differ diff --git a/core_integrations/auth/icon.txt b/core_integrations/auth/icon.txt new file mode 100644 index 00000000..100a25d8 --- /dev/null +++ b/core_integrations/auth/icon.txt @@ -0,0 +1 @@ +mdi:shield-check diff --git a/core_integrations/auth/icon@2x.png b/core_integrations/auth/icon@2x.png deleted file mode 100644 index a0ac9803..00000000 Binary files a/core_integrations/auth/icon@2x.png and /dev/null differ diff --git a/core_integrations/automation/icon.png b/core_integrations/automation/icon.png deleted file mode 100644 index d16cadd7..00000000 Binary files a/core_integrations/automation/icon.png and /dev/null differ diff --git a/core_integrations/automation/icon.txt b/core_integrations/automation/icon.txt new file mode 100644 index 00000000..4a5de08a --- /dev/null +++ b/core_integrations/automation/icon.txt @@ -0,0 +1 @@ +mdi:robot diff --git a/core_integrations/automation/icon@2x.png b/core_integrations/automation/icon@2x.png deleted file mode 100644 index 28dd514e..00000000 Binary files a/core_integrations/automation/icon@2x.png and /dev/null differ diff --git a/core_integrations/camera/icon.png b/core_integrations/camera/icon.png deleted file mode 100644 index 3188e73f..00000000 Binary files a/core_integrations/camera/icon.png and /dev/null differ diff --git a/core_integrations/camera/icon.txt b/core_integrations/camera/icon.txt new file mode 100644 index 00000000..73282961 --- /dev/null +++ b/core_integrations/camera/icon.txt @@ -0,0 +1 @@ +mdi:video diff --git a/core_integrations/camera/icon@2x.png b/core_integrations/camera/icon@2x.png deleted file mode 100644 index 7355942d..00000000 Binary files a/core_integrations/camera/icon@2x.png and /dev/null differ diff --git a/core_integrations/config/icon.png b/core_integrations/config/icon.png deleted file mode 100644 index f512184a..00000000 Binary files a/core_integrations/config/icon.png and /dev/null differ diff --git a/core_integrations/config/icon.txt b/core_integrations/config/icon.txt new file mode 100644 index 00000000..17af2a21 --- /dev/null +++ b/core_integrations/config/icon.txt @@ -0,0 +1 @@ +mdi:cog diff --git a/core_integrations/config/icon@2x.png b/core_integrations/config/icon@2x.png deleted file mode 100644 index e350fb29..00000000 Binary files a/core_integrations/config/icon@2x.png and /dev/null differ diff --git a/core_integrations/counter/icon.png b/core_integrations/counter/icon.png deleted file mode 100644 index 3343e045..00000000 Binary files a/core_integrations/counter/icon.png and /dev/null differ diff --git a/core_integrations/counter/icon.txt b/core_integrations/counter/icon.txt new file mode 100644 index 00000000..a84b9a79 --- /dev/null +++ b/core_integrations/counter/icon.txt @@ -0,0 +1 @@ +mdi:counter \ No newline at end of file diff --git a/core_integrations/counter/icon@2x.png b/core_integrations/counter/icon@2x.png deleted file mode 100644 index d705095e..00000000 Binary files a/core_integrations/counter/icon@2x.png and /dev/null differ diff --git a/core_integrations/derivative/icon.png b/core_integrations/derivative/icon.png deleted file mode 100644 index 67ba9737..00000000 Binary files a/core_integrations/derivative/icon.png and /dev/null differ diff --git a/core_integrations/derivative/icon.txt b/core_integrations/derivative/icon.txt new file mode 100644 index 00000000..96202adf --- /dev/null +++ b/core_integrations/derivative/icon.txt @@ -0,0 +1 @@ +mdi:function-variant diff --git a/core_integrations/derivative/icon@2x.png b/core_integrations/derivative/icon@2x.png deleted file mode 100644 index ada15e6a..00000000 Binary files a/core_integrations/derivative/icon@2x.png and /dev/null differ diff --git a/core_integrations/group/icon.png b/core_integrations/group/icon.png deleted file mode 100644 index c8546f54..00000000 Binary files a/core_integrations/group/icon.png and /dev/null differ diff --git a/core_integrations/group/icon.txt b/core_integrations/group/icon.txt new file mode 100644 index 00000000..90437faa --- /dev/null +++ b/core_integrations/group/icon.txt @@ -0,0 +1 @@ +mdi:google-circles-communities diff --git a/core_integrations/group/icon@2x.png b/core_integrations/group/icon@2x.png deleted file mode 100644 index 6713201e..00000000 Binary files a/core_integrations/group/icon@2x.png and /dev/null differ diff --git a/core_integrations/http/icon.png b/core_integrations/http/icon.png deleted file mode 100644 index 871b5f19..00000000 Binary files a/core_integrations/http/icon.png and /dev/null differ diff --git a/core_integrations/http/icon.txt b/core_integrations/http/icon.txt new file mode 100644 index 00000000..01bbc286 --- /dev/null +++ b/core_integrations/http/icon.txt @@ -0,0 +1 @@ +mdi:protocol diff --git a/core_integrations/http/icon@2x.png b/core_integrations/http/icon@2x.png deleted file mode 100644 index c371e958..00000000 Binary files a/core_integrations/http/icon@2x.png and /dev/null differ diff --git a/core_integrations/image b/core_integrations/image deleted file mode 120000 index 11224b9f..00000000 --- a/core_integrations/image +++ /dev/null @@ -1 +0,0 @@ -_homeassistant \ No newline at end of file diff --git a/core_integrations/image/icon.txt b/core_integrations/image/icon.txt new file mode 100644 index 00000000..f373e18b --- /dev/null +++ b/core_integrations/image/icon.txt @@ -0,0 +1 @@ +mdi:image diff --git a/core_integrations/input_boolean/icon.png b/core_integrations/input_boolean/icon.png deleted file mode 100644 index 545c30ea..00000000 Binary files a/core_integrations/input_boolean/icon.png and /dev/null differ diff --git a/core_integrations/input_boolean/icon.txt b/core_integrations/input_boolean/icon.txt new file mode 100644 index 00000000..935d36d4 --- /dev/null +++ b/core_integrations/input_boolean/icon.txt @@ -0,0 +1 @@ +mdi:toggle-switch-outline diff --git a/core_integrations/input_boolean/icon@2x.png b/core_integrations/input_boolean/icon@2x.png deleted file mode 100644 index b82ba342..00000000 Binary files a/core_integrations/input_boolean/icon@2x.png and /dev/null differ diff --git a/core_integrations/input_button b/core_integrations/input_button deleted file mode 120000 index 11224b9f..00000000 --- a/core_integrations/input_button +++ /dev/null @@ -1 +0,0 @@ -_homeassistant \ No newline at end of file diff --git a/core_integrations/input_button/icon.txt b/core_integrations/input_button/icon.txt new file mode 100644 index 00000000..05f566d3 --- /dev/null +++ b/core_integrations/input_button/icon.txt @@ -0,0 +1 @@ +mdi:gesture-tap-button diff --git a/core_integrations/input_datetime/icon.png b/core_integrations/input_datetime/icon.png deleted file mode 100644 index c758ed68..00000000 Binary files a/core_integrations/input_datetime/icon.png and /dev/null differ diff --git a/core_integrations/input_datetime/icon.txt b/core_integrations/input_datetime/icon.txt new file mode 100644 index 00000000..ad794651 --- /dev/null +++ b/core_integrations/input_datetime/icon.txt @@ -0,0 +1 @@ +mdi:clock diff --git a/core_integrations/input_datetime/icon@2x.png b/core_integrations/input_datetime/icon@2x.png deleted file mode 100644 index 26360777..00000000 Binary files a/core_integrations/input_datetime/icon@2x.png and /dev/null differ diff --git a/core_integrations/input_number/icon.png b/core_integrations/input_number/icon.png deleted file mode 100644 index 4ec5261e..00000000 Binary files a/core_integrations/input_number/icon.png and /dev/null differ diff --git a/core_integrations/input_number/icon.txt b/core_integrations/input_number/icon.txt new file mode 100644 index 00000000..57569cac --- /dev/null +++ b/core_integrations/input_number/icon.txt @@ -0,0 +1 @@ +mdi:ray-vertex diff --git a/core_integrations/input_number/icon@2x.png b/core_integrations/input_number/icon@2x.png deleted file mode 100644 index 394cf6f3..00000000 Binary files a/core_integrations/input_number/icon@2x.png and /dev/null differ diff --git a/core_integrations/input_select/icon.png b/core_integrations/input_select/icon.png deleted file mode 100644 index f2cc771a..00000000 Binary files a/core_integrations/input_select/icon.png and /dev/null differ diff --git a/core_integrations/input_select/icon.txt b/core_integrations/input_select/icon.txt new file mode 100644 index 00000000..e5efb738 --- /dev/null +++ b/core_integrations/input_select/icon.txt @@ -0,0 +1 @@ +mdi:form-dropdown diff --git a/core_integrations/input_select/icon@2x.png b/core_integrations/input_select/icon@2x.png deleted file mode 100644 index b5042ade..00000000 Binary files a/core_integrations/input_select/icon@2x.png and /dev/null differ diff --git a/core_integrations/input_text/icon.png b/core_integrations/input_text/icon.png deleted file mode 100644 index e4461b5c..00000000 Binary files a/core_integrations/input_text/icon.png and /dev/null differ diff --git a/core_integrations/input_text/icon.txt b/core_integrations/input_text/icon.txt new file mode 100644 index 00000000..41433cfa --- /dev/null +++ b/core_integrations/input_text/icon.txt @@ -0,0 +1 @@ +mdi:form-textbox diff --git a/core_integrations/input_text/icon@2x.png b/core_integrations/input_text/icon@2x.png deleted file mode 100644 index 477cd65b..00000000 Binary files a/core_integrations/input_text/icon@2x.png and /dev/null differ diff --git a/core_integrations/integration/icon.png b/core_integrations/integration/icon.png deleted file mode 100644 index e04bc158..00000000 Binary files a/core_integrations/integration/icon.png and /dev/null differ diff --git a/core_integrations/integration/icon.txt b/core_integrations/integration/icon.txt new file mode 100644 index 00000000..8ecc323e --- /dev/null +++ b/core_integrations/integration/icon.txt @@ -0,0 +1 @@ +mdi:math-integral diff --git a/core_integrations/integration/icon@2x.png b/core_integrations/integration/icon@2x.png deleted file mode 100644 index 3b641662..00000000 Binary files a/core_integrations/integration/icon@2x.png and /dev/null differ diff --git a/core_integrations/lovelace/icon.png b/core_integrations/lovelace/icon.png deleted file mode 100644 index 4d3cc21e..00000000 Binary files a/core_integrations/lovelace/icon.png and /dev/null differ diff --git a/core_integrations/lovelace/icon.txt b/core_integrations/lovelace/icon.txt new file mode 100644 index 00000000..838bfa9f --- /dev/null +++ b/core_integrations/lovelace/icon.txt @@ -0,0 +1 @@ +mdi:view-dashboard diff --git a/core_integrations/lovelace/icon@2x.png b/core_integrations/lovelace/icon@2x.png deleted file mode 100644 index adbecdb2..00000000 Binary files a/core_integrations/lovelace/icon@2x.png and /dev/null differ diff --git a/core_integrations/media_player/icon.png b/core_integrations/media_player/icon.png deleted file mode 100644 index 7186afd9..00000000 Binary files a/core_integrations/media_player/icon.png and /dev/null differ diff --git a/core_integrations/media_player/icon.txt b/core_integrations/media_player/icon.txt new file mode 100644 index 00000000..9808b423 --- /dev/null +++ b/core_integrations/media_player/icon.txt @@ -0,0 +1 @@ +mdi:play-circle diff --git a/core_integrations/media_player/icon@2x.png b/core_integrations/media_player/icon@2x.png deleted file mode 100644 index cadcc2af..00000000 Binary files a/core_integrations/media_player/icon@2x.png and /dev/null differ diff --git a/core_integrations/media_source/icon.png b/core_integrations/media_source/icon.png deleted file mode 100644 index 9215298b..00000000 Binary files a/core_integrations/media_source/icon.png and /dev/null differ diff --git a/core_integrations/media_source/icon.txt b/core_integrations/media_source/icon.txt new file mode 100644 index 00000000..0c5b08b3 --- /dev/null +++ b/core_integrations/media_source/icon.txt @@ -0,0 +1 @@ +mdi:folder-multiple-image diff --git a/core_integrations/media_source/icon@2x.png b/core_integrations/media_source/icon@2x.png deleted file mode 100644 index b8180eb7..00000000 Binary files a/core_integrations/media_source/icon@2x.png and /dev/null differ diff --git a/core_integrations/min_max b/core_integrations/min_max deleted file mode 120000 index 11224b9f..00000000 --- a/core_integrations/min_max +++ /dev/null @@ -1 +0,0 @@ -_homeassistant \ No newline at end of file diff --git a/core_integrations/min_max/icon.txt b/core_integrations/min_max/icon.txt new file mode 100644 index 00000000..3938c2bd --- /dev/null +++ b/core_integrations/min_max/icon.txt @@ -0,0 +1 @@ +mdi:plus-minus-variant diff --git a/core_integrations/moon b/core_integrations/moon deleted file mode 120000 index 11224b9f..00000000 --- a/core_integrations/moon +++ /dev/null @@ -1 +0,0 @@ -_homeassistant \ No newline at end of file diff --git a/core_integrations/moon/icon.txt b/core_integrations/moon/icon.txt new file mode 100644 index 00000000..5eb09fe6 --- /dev/null +++ b/core_integrations/moon/icon.txt @@ -0,0 +1 @@ +mdi:moon-waning-crescent diff --git a/core_integrations/notify/icon.png b/core_integrations/notify/icon.png deleted file mode 100644 index 0c9c436a..00000000 Binary files a/core_integrations/notify/icon.png and /dev/null differ diff --git a/core_integrations/notify/icon.txt b/core_integrations/notify/icon.txt new file mode 100644 index 00000000..6ee32fce --- /dev/null +++ b/core_integrations/notify/icon.txt @@ -0,0 +1 @@ +mdi:message-alert diff --git a/core_integrations/notify/icon@2x.png b/core_integrations/notify/icon@2x.png deleted file mode 100644 index 0e3bdc3e..00000000 Binary files a/core_integrations/notify/icon@2x.png and /dev/null differ diff --git a/core_integrations/onboarding/icon.png b/core_integrations/onboarding/icon.png deleted file mode 100644 index 65be2db4..00000000 Binary files a/core_integrations/onboarding/icon.png and /dev/null differ diff --git a/core_integrations/onboarding/icon.txt b/core_integrations/onboarding/icon.txt new file mode 100644 index 00000000..145dde35 --- /dev/null +++ b/core_integrations/onboarding/icon.txt @@ -0,0 +1 @@ +mdi:card-account-details diff --git a/core_integrations/onboarding/icon@2x.png b/core_integrations/onboarding/icon@2x.png deleted file mode 100644 index 2623e59a..00000000 Binary files a/core_integrations/onboarding/icon@2x.png and /dev/null differ diff --git a/core_integrations/persistent_notification b/core_integrations/persistent_notification deleted file mode 120000 index 11224b9f..00000000 --- a/core_integrations/persistent_notification +++ /dev/null @@ -1 +0,0 @@ -_homeassistant \ No newline at end of file diff --git a/core_integrations/persistent_notification/icon.txt b/core_integrations/persistent_notification/icon.txt new file mode 100644 index 00000000..4c1d7afe --- /dev/null +++ b/core_integrations/persistent_notification/icon.txt @@ -0,0 +1 @@ +mdi:bell diff --git a/core_integrations/person/icon.png b/core_integrations/person/icon.png deleted file mode 100644 index 32bf8814..00000000 Binary files a/core_integrations/person/icon.png and /dev/null differ diff --git a/core_integrations/person/icon.txt b/core_integrations/person/icon.txt new file mode 100644 index 00000000..36773136 --- /dev/null +++ b/core_integrations/person/icon.txt @@ -0,0 +1 @@ +mdi:account diff --git a/core_integrations/person/icon@2x.png b/core_integrations/person/icon@2x.png deleted file mode 100644 index c7064fda..00000000 Binary files a/core_integrations/person/icon@2x.png and /dev/null differ diff --git a/core_integrations/script/icon.png b/core_integrations/script/icon.png deleted file mode 100644 index f6e924b8..00000000 Binary files a/core_integrations/script/icon.png and /dev/null differ diff --git a/core_integrations/script/icon.txt b/core_integrations/script/icon.txt new file mode 100644 index 00000000..6772313b --- /dev/null +++ b/core_integrations/script/icon.txt @@ -0,0 +1 @@ +mdi:script-text diff --git a/core_integrations/script/icon@2x.png b/core_integrations/script/icon@2x.png deleted file mode 100644 index aeea1c70..00000000 Binary files a/core_integrations/script/icon@2x.png and /dev/null differ diff --git a/core_integrations/search/icon.png b/core_integrations/search/icon.png deleted file mode 100644 index 7b6c7adc..00000000 Binary files a/core_integrations/search/icon.png and /dev/null differ diff --git a/core_integrations/search/icon.txt b/core_integrations/search/icon.txt new file mode 100644 index 00000000..36cc7cf6 --- /dev/null +++ b/core_integrations/search/icon.txt @@ -0,0 +1 @@ +mdi:magnify diff --git a/core_integrations/search/icon@2x.png b/core_integrations/search/icon@2x.png deleted file mode 100644 index 8758f417..00000000 Binary files a/core_integrations/search/icon@2x.png and /dev/null differ diff --git a/core_integrations/sensor/icon.png b/core_integrations/sensor/icon.png deleted file mode 100644 index b1c5b425..00000000 Binary files a/core_integrations/sensor/icon.png and /dev/null differ diff --git a/core_integrations/sensor/icon.txt b/core_integrations/sensor/icon.txt new file mode 100644 index 00000000..2d02fac4 --- /dev/null +++ b/core_integrations/sensor/icon.txt @@ -0,0 +1 @@ +mdi:eye diff --git a/core_integrations/sensor/icon@2x.png b/core_integrations/sensor/icon@2x.png deleted file mode 100644 index 72c20114..00000000 Binary files a/core_integrations/sensor/icon@2x.png and /dev/null differ diff --git a/core_integrations/switch_as_x b/core_integrations/switch_as_x deleted file mode 120000 index b2c71e7f..00000000 --- a/core_integrations/switch_as_x +++ /dev/null @@ -1 +0,0 @@ -switch \ No newline at end of file diff --git a/core_integrations/switch_as_x/icon.txt b/core_integrations/switch_as_x/icon.txt new file mode 100644 index 00000000..6ac2ef71 --- /dev/null +++ b/core_integrations/switch_as_x/icon.txt @@ -0,0 +1 @@ +mdi:swap-horizontal diff --git a/core_integrations/system_log/icon.png b/core_integrations/system_log/icon.png deleted file mode 100644 index cd684df2..00000000 Binary files a/core_integrations/system_log/icon.png and /dev/null differ diff --git a/core_integrations/system_log/icon.txt b/core_integrations/system_log/icon.txt new file mode 100644 index 00000000..c9c1a150 --- /dev/null +++ b/core_integrations/system_log/icon.txt @@ -0,0 +1 @@ +mdi:format-list-bulleted-type diff --git a/core_integrations/system_log/icon@2x.png b/core_integrations/system_log/icon@2x.png deleted file mode 100644 index fbb0495b..00000000 Binary files a/core_integrations/system_log/icon@2x.png and /dev/null differ diff --git a/core_integrations/threshold b/core_integrations/threshold deleted file mode 120000 index 11224b9f..00000000 --- a/core_integrations/threshold +++ /dev/null @@ -1 +0,0 @@ -_homeassistant \ No newline at end of file diff --git a/core_integrations/threshold/icon.txt b/core_integrations/threshold/icon.txt new file mode 100644 index 00000000..95a8835f --- /dev/null +++ b/core_integrations/threshold/icon.txt @@ -0,0 +1 @@ +mdi:chart-sankey diff --git a/core_integrations/timer/icon.png b/core_integrations/timer/icon.png deleted file mode 100644 index 9a6bd31b..00000000 Binary files a/core_integrations/timer/icon.png and /dev/null differ diff --git a/core_integrations/timer/icon.txt b/core_integrations/timer/icon.txt new file mode 100644 index 00000000..1287a399 --- /dev/null +++ b/core_integrations/timer/icon.txt @@ -0,0 +1 @@ +mdi:timer diff --git a/core_integrations/timer/icon@2x.png b/core_integrations/timer/icon@2x.png deleted file mode 100644 index 81cfc143..00000000 Binary files a/core_integrations/timer/icon@2x.png and /dev/null differ diff --git a/core_integrations/tod b/core_integrations/tod deleted file mode 120000 index 11224b9f..00000000 --- a/core_integrations/tod +++ /dev/null @@ -1 +0,0 @@ -_homeassistant \ No newline at end of file diff --git a/core_integrations/tod/icon.txt b/core_integrations/tod/icon.txt new file mode 100644 index 00000000..88fb8517 --- /dev/null +++ b/core_integrations/tod/icon.txt @@ -0,0 +1 @@ +mdi:hours-24 diff --git a/core_integrations/tts/icon.png b/core_integrations/tts/icon.png deleted file mode 100644 index db6d0892..00000000 Binary files a/core_integrations/tts/icon.png and /dev/null differ diff --git a/core_integrations/tts/icon.txt b/core_integrations/tts/icon.txt new file mode 100644 index 00000000..3dc2f2e3 --- /dev/null +++ b/core_integrations/tts/icon.txt @@ -0,0 +1 @@ +mdi:text-to-speech diff --git a/core_integrations/tts/icon@2x.png b/core_integrations/tts/icon@2x.png deleted file mode 100644 index 8254860e..00000000 Binary files a/core_integrations/tts/icon@2x.png and /dev/null differ diff --git a/core_integrations/utility_meter/icon.png b/core_integrations/utility_meter/icon.png deleted file mode 100644 index b309c8c4..00000000 Binary files a/core_integrations/utility_meter/icon.png and /dev/null differ diff --git a/core_integrations/utility_meter/icon.txt b/core_integrations/utility_meter/icon.txt new file mode 100644 index 00000000..a357bb7c --- /dev/null +++ b/core_integrations/utility_meter/icon.txt @@ -0,0 +1 @@ +mdi:gauge diff --git a/core_integrations/utility_meter/icon@2x.png b/core_integrations/utility_meter/icon@2x.png deleted file mode 100644 index 391b69e6..00000000 Binary files a/core_integrations/utility_meter/icon@2x.png and /dev/null differ diff --git a/core_integrations/webhook/icon.png b/core_integrations/webhook/icon.png deleted file mode 100644 index db14900f..00000000 Binary files a/core_integrations/webhook/icon.png and /dev/null differ diff --git a/core_integrations/webhook/icon.txt b/core_integrations/webhook/icon.txt new file mode 100644 index 00000000..13fc38a2 --- /dev/null +++ b/core_integrations/webhook/icon.txt @@ -0,0 +1 @@ +mdi:webhook diff --git a/core_integrations/webhook/icon@2x.png b/core_integrations/webhook/icon@2x.png deleted file mode 100644 index 80ea2b7b..00000000 Binary files a/core_integrations/webhook/icon@2x.png and /dev/null differ diff --git a/core_integrations/webhook/logo.png b/core_integrations/webhook/logo.png deleted file mode 100644 index 057b8d05..00000000 Binary files a/core_integrations/webhook/logo.png and /dev/null differ diff --git a/core_integrations/webhook/logo@2x.png b/core_integrations/webhook/logo@2x.png deleted file mode 100644 index 057b8d05..00000000 Binary files a/core_integrations/webhook/logo@2x.png and /dev/null differ diff --git a/core_integrations/websocket_api/icon.png b/core_integrations/websocket_api/icon.png deleted file mode 100644 index 5cf48631..00000000 Binary files a/core_integrations/websocket_api/icon.png and /dev/null differ diff --git a/core_integrations/websocket_api/icon.txt b/core_integrations/websocket_api/icon.txt new file mode 100644 index 00000000..be5dd90f --- /dev/null +++ b/core_integrations/websocket_api/icon.txt @@ -0,0 +1 @@ +mdi:api diff --git a/core_integrations/websocket_api/icon@2x.png b/core_integrations/websocket_api/icon@2x.png deleted file mode 100644 index 9885e25e..00000000 Binary files a/core_integrations/websocket_api/icon@2x.png and /dev/null differ diff --git a/core_integrations/zone/icon.png b/core_integrations/zone/icon.png deleted file mode 100644 index 94eec092..00000000 Binary files a/core_integrations/zone/icon.png and /dev/null differ diff --git a/core_integrations/zone/icon.txt b/core_integrations/zone/icon.txt new file mode 100644 index 00000000..4cfc7fb1 --- /dev/null +++ b/core_integrations/zone/icon.txt @@ -0,0 +1 @@ +mdi:map-marker-radius diff --git a/core_integrations/zone/icon@2x.png b/core_integrations/zone/icon@2x.png deleted file mode 100644 index 5702d921..00000000 Binary files a/core_integrations/zone/icon@2x.png and /dev/null differ diff --git a/scripts/build.sh b/scripts/build.sh index c57b4113..f7bc4cfc 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -3,6 +3,10 @@ # Copy folder, without symlinks, but use actual files instead mkdir -p build/_ +# Clone MDI icons +rm -f -r mdi +git clone --depth=1 https://github.com/Templarian/MaterialDesign mdi + # Copy custom integrations rsync -aL custom_integrations/ build/_ rsync -aL custom_integrations/ build @@ -11,6 +15,43 @@ rsync -aL custom_integrations/ build rsync -aL --exclude '_homeassistant' core_integrations/ build/_ rsync -aL --exclude '_homeassistant' --exclude '_placeholder' core_integrations/ build +# Generate icons based on MDI +find ./build -type f -name "icon.txt" | while read icon; do + dir=$(dirname "${icon}") + mdi=$(<${icon}) + mdi="${mdi##mdi:}" + mogrify \ + -format png \ + -density 6400 \ + -background transparent \ + -fill "rgb(0,171,248,1.0)" \ + -opaque black \ + -trim \ + -resize 240x240 \ + -gravity center \ + -extent 256x256 \ + -write "${dir}/icon.png" \ + "mdi/svg/${mdi}.svg" + + mogrify \ + -format png \ + -density 6400 \ + -background transparent \ + -fill "rgb(0,171,248,1.0)" \ + -opaque black \ + -trim \ + -resize 480x480 \ + -gravity center \ + -extent 512x512 \ + -write "${dir}/icon@2x.png" \ + "mdi/svg/${mdi}.svg" + + optipng -silent "${dir}/icon.png" "${dir}/icon@2x.png" + + rm "${icon}" + echo "Generated mdi:${mdi} for ${icon}" +done + # Use icon as logo in case of a missing logo find ./build -type f -name "icon.png" | while read icon; do dir=$(dirname "${icon}")