Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

follow: init at 0.0.1-alpha.13 #341356

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
6 changes: 6 additions & 0 deletions maintainers/maintainer-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -9110,6 +9110,12 @@
githubId = 1817528;
name = "Igor Polyakov";
};
iosmanthus = {
email = "[email protected]";
github = "iosmanthus";
githubId = 16307070;
name = "iosmanthus";
};
iquerejeta = {
github = "iquerejeta";
githubId = 31273774;
Expand Down
107 changes: 107 additions & 0 deletions pkgs/by-name/fo/follow/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
{
electron,
fetchFromGitHub,
imagemagick,
lib,
makeDesktopItem,
makeWrapper,
nodejs,
pnpm,
stdenv,
}:
let
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is purely aesthetic, but we'd better just drop the let in block.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Roger.

pname = "follow";
version = "0.0.1-alpha.13";
src = fetchFromGitHub {
owner = "RSSNext";
repo = "Follow";
rev = "v${version}";
hash = "sha256-LCI+kUxrEFLDBZrgDnOu6UI3d6atm4JptNKhyob9PH4=";
};
pnpmDeps = pnpm.fetchDeps {
inherit pname version src;
hash = "sha256-K8IM2kE7qhEBux4eta1ma/timSeljzf0MbOUeJ4JCIc=";
};
env = {
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
VITE_WEB_URL = "https://app.follow.is";
VITE_API_URL = "https://api.follow.is";
VITE_IMGPROXY_URL = "https://thumbor.follow.is";
VITE_SENTRY_DSN = "https://e5bccf7428aa4e881ed5cb713fdff181@o4507542488023040.ingest.us.sentry.io/4507570439979008";
VITE_BUILD_TYPE = "production";
VITE_POSTHOG_KEY = "phc_EZGEvBt830JgBHTiwpHqJAEbWnbv63m5UpreojwEWNL";
Comment on lines +43 to +48
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a link pointing to where these magic variables are from.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, these magic vars are copy from the upstream release workflow.

};
desktopItem = makeDesktopItem {
name = "follow";
desktopName = "Follow";
comment = "Next generation information browser";
icon = "follow";
exec = "follow";
categories = [ "Utility" ];
mimeTypes = [ "x-scheme-handler/follow" ];
};
icon = src + "/resources/icon.png";
meta = {
description = "Next generation information browser";
homepage = "https://github.com/RSSNext/Follow";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ iosmanthus ];
platforms = [ "x86_64-linux" ];
mainProgram = "follow";
};
in
stdenv.mkDerivation {
inherit
pname
version
src
pnpmDeps
env
desktopItem
icon
meta
;

nativeBuildInputs = [
nodejs
pnpm.configHook
makeWrapper
imagemagick
];

buildPhase = ''
runHook preBuild

pnpm --offline electron-vite build --outDir=dist
# Remove dev dependencies.
pnpm --ignore-scripts prune --prod
# Clean up broken symlinks left behind by `pnpm prune`
find node_modules/.bin -xtype l -delete

runHook postBuild
'';

installPhase = ''
runHook preInstall

mkdir -p $out/share/{applications,follow}
cp -r . $out/share/follow
rm -rf $out/share/follow/{.vscode,.github}

makeWrapper "${electron}/bin/electron" "$out/bin/follow" \
--inherit-argv0 \
--add-flags --disable-gpu-compositing \
--add-flags $out/share/follow \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime}}"

install -m 444 -D "${desktopItem}/share/applications/"* \
-t $out/share/applications/

for size in 16 24 32 48 64 128 256 512; do
mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
convert -background none -resize "$size"x"$size" ${icon} $out/share/icons/hicolor/"$size"x"$size"/apps/follow.png
done

runHook postInstall
'';
}