]> cat aescling's git repositories - mastodon.git/commitdiff
Generate app icons before precomp
authoraescling <aescling+gitlab@cat.family>
Sun, 19 Mar 2023 22:43:05 +0000 (18:43 -0400)
committeraescling <aescling+gitlab@cat.family>
Mon, 20 Mar 2023 04:15:18 +0000 (00:15 -0400)
Squashed commit of
https://gitlab.com/kibicat/mastodon/-/merge_requests/30 and
https://gitlab.com/kibicat/mastodon/-/merge_requests/31

This causes :blobcat_sleep: to Actually be the favicon now; more
generally, it uses app/javascript/images/logo.png (ideally we would use
SVG---TODO: do that) as the basis fur the front end favicon and app
icons, which are now generated at build time.

This is arguably suboptimal as we purrform redundant work now on every
build, but I think that is an acceptable tradeoff. It's a small amount
of work and we do not exactly build the code very often.

I would prefer to not have to add an extra command to our build
scripts...

This removes app/javascript/icons and public/favicon.ico from repo.
Naturally.

28 files changed:
.gitlab-ci.yml
app/javascript/icons/.gitignore [new file with mode: 0644]
app/javascript/icons/android-chrome-144x144.png [deleted file]
app/javascript/icons/android-chrome-192x192.png [deleted file]
app/javascript/icons/android-chrome-256x256.png [deleted file]
app/javascript/icons/android-chrome-36x36.png [deleted file]
app/javascript/icons/android-chrome-384x384.png [deleted file]
app/javascript/icons/android-chrome-48x48.png [deleted file]
app/javascript/icons/android-chrome-512x512.png [deleted file]
app/javascript/icons/android-chrome-72x72.png [deleted file]
app/javascript/icons/android-chrome-96x96.png [deleted file]
app/javascript/icons/apple-touch-icon-1024x1024.png [deleted file]
app/javascript/icons/apple-touch-icon-114x114.png [deleted file]
app/javascript/icons/apple-touch-icon-120x120.png [deleted file]
app/javascript/icons/apple-touch-icon-144x144.png [deleted file]
app/javascript/icons/apple-touch-icon-152x152.png [deleted file]
app/javascript/icons/apple-touch-icon-167x167.png [deleted file]
app/javascript/icons/apple-touch-icon-180x180.png [deleted file]
app/javascript/icons/apple-touch-icon-57x57.png [deleted file]
app/javascript/icons/apple-touch-icon-60x60.png [deleted file]
app/javascript/icons/apple-touch-icon-72x72.png [deleted file]
app/javascript/icons/apple-touch-icon-76x76.png [deleted file]
app/javascript/icons/favicon-16x16.png [deleted file]
app/javascript/icons/favicon-32x32.png [deleted file]
app/javascript/icons/favicon-48x48.png [deleted file]
app/javascript/images/logo.png [new file with mode: 0644]
lib/tasks/branding.rake
public/favicon.ico [deleted file]

index 7a20909a26d996ebf88ab18f3d54054b1eb8d5ba..56cf82aeff9a1f508bbf78332f27993ca29af5ee 100644 (file)
@@ -101,6 +101,7 @@ diff:
 build:
   stage: build
   script:
+    - ./bin/rails branding:generate_app_icons # ew
     - ./bin/rails assets:precompile
   artifacts:
     name: assets
diff --git a/app/javascript/icons/.gitignore b/app/javascript/icons/.gitignore
new file mode 100644 (file)
index 0000000..795bda6
--- /dev/null
@@ -0,0 +1 @@
+# this file forces this folder to exist in the repository
diff --git a/app/javascript/icons/android-chrome-144x144.png b/app/javascript/icons/android-chrome-144x144.png
deleted file mode 100644 (file)
index d282a6d..0000000
Binary files a/app/javascript/icons/android-chrome-144x144.png and /dev/null differ
diff --git a/app/javascript/icons/android-chrome-192x192.png b/app/javascript/icons/android-chrome-192x192.png
deleted file mode 100644 (file)
index d3f9959..0000000
Binary files a/app/javascript/icons/android-chrome-192x192.png and /dev/null differ
diff --git a/app/javascript/icons/android-chrome-256x256.png b/app/javascript/icons/android-chrome-256x256.png
deleted file mode 100644 (file)
index 98ce6ff..0000000
Binary files a/app/javascript/icons/android-chrome-256x256.png and /dev/null differ
diff --git a/app/javascript/icons/android-chrome-36x36.png b/app/javascript/icons/android-chrome-36x36.png
deleted file mode 100644 (file)
index f8ffeeb..0000000
Binary files a/app/javascript/icons/android-chrome-36x36.png and /dev/null differ
diff --git a/app/javascript/icons/android-chrome-384x384.png b/app/javascript/icons/android-chrome-384x384.png
deleted file mode 100644 (file)
index 60b3753..0000000
Binary files a/app/javascript/icons/android-chrome-384x384.png and /dev/null differ
diff --git a/app/javascript/icons/android-chrome-48x48.png b/app/javascript/icons/android-chrome-48x48.png
deleted file mode 100644 (file)
index ce49448..0000000
Binary files a/app/javascript/icons/android-chrome-48x48.png and /dev/null differ
diff --git a/app/javascript/icons/android-chrome-512x512.png b/app/javascript/icons/android-chrome-512x512.png
deleted file mode 100644 (file)
index bccaada..0000000
Binary files a/app/javascript/icons/android-chrome-512x512.png and /dev/null differ
diff --git a/app/javascript/icons/android-chrome-72x72.png b/app/javascript/icons/android-chrome-72x72.png
deleted file mode 100644 (file)
index ce57ab7..0000000
Binary files a/app/javascript/icons/android-chrome-72x72.png and /dev/null differ
diff --git a/app/javascript/icons/android-chrome-96x96.png b/app/javascript/icons/android-chrome-96x96.png
deleted file mode 100644 (file)
index cd8f09e..0000000
Binary files a/app/javascript/icons/android-chrome-96x96.png and /dev/null differ
diff --git a/app/javascript/icons/apple-touch-icon-1024x1024.png b/app/javascript/icons/apple-touch-icon-1024x1024.png
deleted file mode 100644 (file)
index b1f18f3..0000000
Binary files a/app/javascript/icons/apple-touch-icon-1024x1024.png and /dev/null differ
diff --git a/app/javascript/icons/apple-touch-icon-114x114.png b/app/javascript/icons/apple-touch-icon-114x114.png
deleted file mode 100644 (file)
index e13aaa8..0000000
Binary files a/app/javascript/icons/apple-touch-icon-114x114.png and /dev/null differ
diff --git a/app/javascript/icons/apple-touch-icon-120x120.png b/app/javascript/icons/apple-touch-icon-120x120.png
deleted file mode 100644 (file)
index aa63012..0000000
Binary files a/app/javascript/icons/apple-touch-icon-120x120.png and /dev/null differ
diff --git a/app/javascript/icons/apple-touch-icon-144x144.png b/app/javascript/icons/apple-touch-icon-144x144.png
deleted file mode 100644 (file)
index d282a6d..0000000
Binary files a/app/javascript/icons/apple-touch-icon-144x144.png and /dev/null differ
diff --git a/app/javascript/icons/apple-touch-icon-152x152.png b/app/javascript/icons/apple-touch-icon-152x152.png
deleted file mode 100644 (file)
index 0dec7d6..0000000
Binary files a/app/javascript/icons/apple-touch-icon-152x152.png and /dev/null differ
diff --git a/app/javascript/icons/apple-touch-icon-167x167.png b/app/javascript/icons/apple-touch-icon-167x167.png
deleted file mode 100644 (file)
index a622e12..0000000
Binary files a/app/javascript/icons/apple-touch-icon-167x167.png and /dev/null differ
diff --git a/app/javascript/icons/apple-touch-icon-180x180.png b/app/javascript/icons/apple-touch-icon-180x180.png
deleted file mode 100644 (file)
index 864046b..0000000
Binary files a/app/javascript/icons/apple-touch-icon-180x180.png and /dev/null differ
diff --git a/app/javascript/icons/apple-touch-icon-57x57.png b/app/javascript/icons/apple-touch-icon-57x57.png
deleted file mode 100644 (file)
index 116918c..0000000
Binary files a/app/javascript/icons/apple-touch-icon-57x57.png and /dev/null differ
diff --git a/app/javascript/icons/apple-touch-icon-60x60.png b/app/javascript/icons/apple-touch-icon-60x60.png
deleted file mode 100644 (file)
index 0eda96e..0000000
Binary files a/app/javascript/icons/apple-touch-icon-60x60.png and /dev/null differ
diff --git a/app/javascript/icons/apple-touch-icon-72x72.png b/app/javascript/icons/apple-touch-icon-72x72.png
deleted file mode 100644 (file)
index ce57ab7..0000000
Binary files a/app/javascript/icons/apple-touch-icon-72x72.png and /dev/null differ
diff --git a/app/javascript/icons/apple-touch-icon-76x76.png b/app/javascript/icons/apple-touch-icon-76x76.png
deleted file mode 100644 (file)
index 50e1628..0000000
Binary files a/app/javascript/icons/apple-touch-icon-76x76.png and /dev/null differ
diff --git a/app/javascript/icons/favicon-16x16.png b/app/javascript/icons/favicon-16x16.png
deleted file mode 100644 (file)
index 33ef3bb..0000000
Binary files a/app/javascript/icons/favicon-16x16.png and /dev/null differ
diff --git a/app/javascript/icons/favicon-32x32.png b/app/javascript/icons/favicon-32x32.png
deleted file mode 100644 (file)
index 7b9a374..0000000
Binary files a/app/javascript/icons/favicon-32x32.png and /dev/null differ
diff --git a/app/javascript/icons/favicon-48x48.png b/app/javascript/icons/favicon-48x48.png
deleted file mode 100644 (file)
index 5b35eb2..0000000
Binary files a/app/javascript/icons/favicon-48x48.png and /dev/null differ
diff --git a/app/javascript/images/logo.png b/app/javascript/images/logo.png
new file mode 100644 (file)
index 0000000..5f51de7
Binary files /dev/null and b/app/javascript/images/logo.png differ
index 2eec7c9e14df0349eb845abf6ff883278560a74a..3044591ba973599494361efd703c8856b88bd891 100644 (file)
@@ -33,14 +33,14 @@ namespace :branding do
     rsvg_convert.run(stylesheet: Rails.root.join('lib', 'assets', 'wordmark.light.css'), input: Rails.root.join('app', 'javascript', 'images', 'logo-symbol-wordmark.svg'), size: 102, output: output_dest.join('wordmark.light.png'))
   end
 
-  desc 'Generate favicons and app icons from SVG source files'
+  desc 'Generate favicons and app icons from source files'
   task generate_app_icons: :environment do
-    favicon_source  = Rails.root.join('app', 'javascript', 'images', 'logo.svg')
-    app_icon_source = Rails.root.join('app', 'javascript', 'images', 'app-icon.svg')
+    favicon_source  = Rails.root.join('app', 'javascript', 'images', 'logo.png') # ideally, we would use an SVG
+    app_icon_source = favicon_source
     output_dest     = Rails.root.join('app', 'javascript', 'icons')
 
-    rsvg_convert = Terrapin::CommandLine.new('rsvg-convert', '-w :size -h :size --keep-aspect-ratio :input -o :output')
     convert = Terrapin::CommandLine.new('convert', ':input :output')
+    convert_resize = Terrapin::CommandLine.new('convert', ':input -resize :size :output')
 
     favicon_sizes      = [16, 32, 48]
     apple_icon_sizes   = [57, 60, 72, 76, 114, 120, 144, 152, 167, 180, 1024]
@@ -51,17 +51,17 @@ namespace :branding do
     favicon_sizes.each do |size|
       output_path = output_dest.join("favicon-#{size}x#{size}.png")
       favicons << output_path
-      rsvg_convert.run(size: size, input: favicon_source, output: output_path)
+      convert_resize.run(size: "#{size}x#{size}", input: favicon_source, output: output_path)
     end
 
     convert.run(input: favicons, output: Rails.root.join('public', 'favicon.ico'))
 
     apple_icon_sizes.each do |size|
-      rsvg_convert.run(size: size, input: app_icon_source, output: output_dest.join("apple-touch-icon-#{size}x#{size}.png"))
+      convert_resize.run(size: "#{size}x#{size}", input: app_icon_source, output: output_dest.join("apple-touch-icon-#{size}x#{size}.png"))
     end
 
     android_icon_sizes.each do |size|
-      rsvg_convert.run(size: size, input: app_icon_source, output: output_dest.join("android-chrome-#{size}x#{size}.png"))
+      convert_resize.run(size: "#{size}x#{size}", input: app_icon_source, output: output_dest.join("android-chrome-#{size}x#{size}.png"))
     end
   end
 
diff --git a/public/favicon.ico b/public/favicon.ico
deleted file mode 100644 (file)
index b09a98b..0000000
Binary files a/public/favicon.ico and /dev/null differ