From 0b6f7bc5d82afffe4e662895e63a74e4b869221e Mon Sep 17 00:00:00 2001
From: aunetx <aunetx@yandex.com>
Date: Mon, 15 Nov 2021 15:01:17 +0100
Subject: [PATCH] Port to yarn

---
 Makefile              | 22 +++++++++++-----------
 dev.aunetx.deezer.yml |  9 ++++++---
 package-append.json   |  2 +-
 3 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/Makefile b/Makefile
index 2f0307c..4f3ca41 100644
--- a/Makefile
+++ b/Makefile
@@ -37,11 +37,11 @@ prepare: install_build_deps
 
 #! FLATPAK
 prepare_flatpak: prepare
-	# Generate npm sources (without installing them)
-	npm i --prefix=app --package-lock-only
+	# Generate yarn sources (without installing them)
+	yarn install --cwd=app --mode update-lockfile
 	# Package the sources to use them in flatpak-builder offline
 	mkdir -p flatpak
-	./flatpak-node-generator.py npm app/package-lock.json -o flatpak/generated-sources.json --electron-node-headers --xdg-layout
+	./flatpak-node-generator.py yarn app/yarn.lock -o flatpak/generated-sources.json --electron-node-headers --xdg-layout
 
 build_flatpak: prepare_flatpak
 	# Build the flatpak image
@@ -66,37 +66,37 @@ run_flatpak:
 
 #! APPIMAGE
 install_deps: prepare
-	# Install npm dependencies to pack them later
-	npm i --prefix=app
+	# Install yarn dependencies to pack them later
+	yarn install --cwd=app
 
 build_appimage: install_deps
 	# Build the AppImage package
-	npm run build-appimage --prefix=app
+	yarn run build-appimage --cwd=app
 
 
 #! PKGS
 build_pkgs: install_deps
 	# Build everything
-	npm run build --prefix=app
+	yarn run build --cwd=app
 
 
 build_rpm: install_deps
 	# Build rpm package
-	npm run build-rpm --prefix=app
+	yarn run build-rpm --cwd=app
 
 
 build_deb: install_deps
 	# Build deb package
-	npm run build-deb --prefix=app
+	yarn run build-deb --cwd=app
 
 
 build_pkgs_arm64: install_deps
 	# Build everything
-	npm run build-arm --prefix=app
+	yarn run build-arm --cwd=app
 
 build_pkgs_x86: install_deps
 	# Build everything
-	npm run build-x86 --prefix=app
+	yarn run build-x86 --cwd=app
 
 
 clean:
diff --git a/dev.aunetx.deezer.yml b/dev.aunetx.deezer.yml
index ec87a66..eb858b1 100644
--- a/dev.aunetx.deezer.yml
+++ b/dev.aunetx.deezer.yml
@@ -58,7 +58,7 @@ modules:
       - type: file
         path: dev.aunetx.deezer.desktop
         dest: main
-      # The npm generated sources
+      # The yarn generated sources
       - flatpak/generated-sources.json
       # Wrapper to launch the app
       - type: script
@@ -66,13 +66,16 @@ modules:
         commands:
           - zypak-wrapper /app/main/deezer-desktop "$@"
     build-commands:
+      # Have Yarn use the offline mirror.
+      - 'HOME=$PWD yarn config --offline set yarn-offline-mirror $FLATPAK_BUILDER_BUILDDIR/flatpak-node/yarn-mirror'
+
       # Install dependencies
-      - npm install --offline
+      - yarn --offline
 
       # Build the app; the `dist` script in package.json runs electron-builder
       - |
         . ../flatpak-node/electron-builder-arch-args.sh
-        npm run prepare-flatpak -- $ELECTRON_BUILDER_ARCH_ARGS
+        yarn run --offline prepare-flatpak -- $ELECTRON_BUILDER_ARCH_ARGS
 
       # Bundle app and dependencies
       - |
diff --git a/package-append.json b/package-append.json
index 1948811..f74a77e 100644
--- a/package-append.json
+++ b/package-append.json
@@ -1,6 +1,6 @@
  ,"scripts": {
     "copy-resources": "mkdir -p resources/linux && cp ../extra/linux/* ./resources/linux",
-    "start": "npm copy-resources && electron .",
+    "start": "yarn run copy-resources && electron .",
     "prepare-flatpak": "electron-builder --linux --dir",
 
     "build": "electron-builder --x64 --linux deb rpm snap AppImage 7z tar.gz zip",