feat: use nixfmt

This commit is contained in:
Oskar Manhart 2024-09-09 10:31:41 +02:00
parent b0f2830224
commit 7d5cce374c
4 changed files with 122 additions and 102 deletions

View File

@ -1,5 +1,6 @@
ci: ci:
autoupdate_branch: "rewrite" autoupdate_branch: "rewrite"
skip: [nixfmt]
repos: repos:
- repo: https://github.com/Lucas-C/pre-commit-hooks - repo: https://github.com/Lucas-C/pre-commit-hooks
@ -48,3 +49,8 @@ repos:
rev: v0.10.0.1 rev: v0.10.0.1
hooks: hooks:
- id: shellcheck - id: shellcheck
- repo: https://github.com/NixOS/nixfmt
rev: d0c0cda4fe6b7ae2b9aa37f3ee15e6412573eb01
hooks:
- id: nixfmt

View File

@ -6,19 +6,22 @@
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
}; };
outputs = { outputs =
nixpkgs, {
flake-utils, nixpkgs,
... flake-utils,
}: ...
}:
flake-utils.lib.eachDefaultSystem ( flake-utils.lib.eachDefaultSystem (
system: let system:
pkgs = import nixpkgs {inherit system;}; let
in { pkgs = import nixpkgs { inherit system; };
formatter = pkgs.alejandra; in
{
formatter = pkgs.nixfmt-rfc-style;
packages.winapps = pkgs.callPackage ./packages/winapps {}; packages.winapps = pkgs.callPackage ./packages/winapps { };
packages.winapps-launcher = pkgs.callPackage ./packages/winapps-launcher {}; packages.winapps-launcher = pkgs.callPackage ./packages/winapps-launcher { };
} }
); );
} }

View File

@ -7,60 +7,64 @@
callPackage, callPackage,
yad, yad,
... ...
}: let }:
let
rev = "eaa660d39bf3f49b136c98c87c35e3e12f118f8f"; rev = "eaa660d39bf3f49b136c98c87c35e3e12f118f8f";
hash = "sha256-7lkx/O4dOdVqAPX6s2IkkM6Ggbzmz9sm++20BBeoUQ4="; hash = "sha256-7lkx/O4dOdVqAPX6s2IkkM6Ggbzmz9sm++20BBeoUQ4=";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "winapps-launcher"; pname = "winapps-launcher";
version = "git+${rev}"; version = "git+${rev}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "winapps-org"; owner = "winapps-org";
repo = "WinApps-Launcher"; repo = "WinApps-Launcher";
inherit rev hash; inherit rev hash;
}; };
nativeBuildInputs = [makeWrapper]; nativeBuildInputs = [ makeWrapper ];
buildInputs = [yad (callPackage ../winapps {})]; buildInputs = [
yad
(callPackage ../winapps { })
];
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
mkdir -p $out mkdir -p $out
cp -r ./Icons $out/Icons cp -r ./Icons $out/Icons
sed -E -i \ sed -E -i \
-e "$(printf "%s$out%s" 's|^declare -rx ICONS_PATH="./Icons"|declare -rx ICONS_PATH="' '/Icons"|')" \ -e "$(printf "%s$out%s" 's|^declare -rx ICONS_PATH="./Icons"|declare -rx ICONS_PATH="' '/Icons"|')" \
WinAppsLauncher.sh WinAppsLauncher.sh
install -m755 -D WinAppsLauncher.sh $out/bin/winapps-launcher install -m755 -D WinAppsLauncher.sh $out/bin/winapps-launcher
install -Dm444 -T Icons/AppIcon.svg $out/share/pixmaps/winapps.svg install -Dm444 -T Icons/AppIcon.svg $out/share/pixmaps/winapps.svg
wrapProgram $out/bin/winapps-launcher \ wrapProgram $out/bin/winapps-launcher \
--set LIBVIRT_DEFAULT_URI "qemu:///system" \ --set LIBVIRT_DEFAULT_URI "qemu:///system" \
--prefix PATH : "${lib.makeBinPath buildInputs}" --prefix PATH : "${lib.makeBinPath buildInputs}"
runHook postInstall runHook postInstall
''; '';
desktopItems = [ desktopItems = [
(makeDesktopItem { (makeDesktopItem {
name = "winapps"; name = "winapps";
exec = "winapps-launcher"; exec = "winapps-launcher";
icon = "winapps"; icon = "winapps";
comment = meta.description; comment = meta.description;
desktopName = "WinApps"; desktopName = "WinApps";
categories = ["Utility"]; categories = [ "Utility" ];
}) })
]; ];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/winapps-org/WinApps-Launcher"; homepage = "https://github.com/winapps-org/WinApps-Launcher";
description = "Graphical launcher for WinApps. Run Windows applications (including Microsoft 365 and Adobe Creative Cloud) on GNU/Linux with KDE, GNOME or XFCE, integrated seamlessly as if they were native to the OS. Wayland is currently unsupported."; description = "Graphical launcher for WinApps. Run Windows applications (including Microsoft 365 and Adobe Creative Cloud) on GNU/Linux with KDE, GNOME or XFCE, integrated seamlessly as if they were native to the OS. Wayland is currently unsupported.";
mainProgram = "winapps-launcher"; mainProgram = "winapps-launcher";
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.gpl3; license = licenses.gpl3;
}; };
} }

View File

@ -9,67 +9,74 @@
netcat-gnu, netcat-gnu,
iproute2, iproute2,
... ...
}: let }:
let
rev = "7bae17e3a3607e6b93c7cfc4155dfbdca7bba005"; rev = "7bae17e3a3607e6b93c7cfc4155dfbdca7bba005";
hash = "sha256-PP4POMwHCsAdiCxZkjXlON84F0Mg3Pd5bHEI6tC+Sds="; hash = "sha256-PP4POMwHCsAdiCxZkjXlON84F0Mg3Pd5bHEI6tC+Sds=";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "winapps"; pname = "winapps";
version = "git+${rev}"; version = "git+${rev}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "winapps-org"; owner = "winapps-org";
repo = "winapps"; repo = "winapps";
inherit rev hash; inherit rev hash;
}; };
nativeBuildInputs = [makeWrapper]; nativeBuildInputs = [ makeWrapper ];
buildInputs = [freerdp3 libnotify dialog netcat-gnu iproute2]; buildInputs = [
freerdp3
libnotify
dialog
netcat-gnu
iproute2
];
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
patchShebangs install/inquirer.sh mkdir -p $out
mkdir -p $out/src
mkdir -p $out patchShebangs install/inquirer.sh
mkdir -p $out/src
cp -r ./ $out/src/ sed -E -i \
-e 's/grep -q -E "\\blibvirt\\b"/grep -q -E "\\blibvirtd\\b"/' \
bin/winapps
install -m755 -D bin/winapps $out/bin/winapps sed -E -i \
install -m755 -D setup.sh $out/bin/winapps-setup -e 's/grep -q -E "\\blibvirt\\b"/grep -q -E "\\blibvirtd\\b"/' \
-e "$(printf "%s$out%s" 's|^readonly INQUIRER_PATH="./install/inquirer.sh"|readonly INQUIRER_PATH="' '/src/install/inquirer.sh"|')" \
-e "$(printf "%s$out%s" 's|^readonly SYS_SOURCE_PATH="(.*?)"|readonly SYS_SOURCE_PATH="' '/src"|')" \
-e "$(printf "%s$out%s" 's|^readonly USER_SOURCE_PATH="(.*?)"|readonly USER_SOURCE_PATH="' '/src"|')" \
-e 's/\$SUDO git -C "\$SOURCE_PATH" pull --no-rebase//g' \
-e 's|./setup.sh|winapps-setup|g' \
-e 's|\$SUDO ln -s "./bin/winapps" "\$\{BIN_PATH\}/winapps"||' \
-e 's|\$SUDO ln -s "./setup.sh" "\$\{BIN_PATH\}/winapps-setup"||' \
-e "s|\$\{BIN_PATH\}/winapps|$out/bin/winapps|" \
./setup.sh
sed -E -i \ cp -r ./ $out/src/
-e 's/grep -q -E "\\blibvirt\\b"/grep -q -E "\\blibvirtd\\b"/' \
$out/bin/winapps
sed -E -i \ install -m755 -D bin/winapps $out/bin/winapps
-e 's/grep -q -E "\\blibvirt\\b"/grep -q -E "\\blibvirtd\\b"/' \ install -m755 -D setup.sh $out/bin/winapps-setup
-e "$(printf "%s$out%s" 's|^readonly INQUIRER_PATH="./install/inquirer.sh"|readonly INQUIRER_PATH="' '/src/install/inquirer.sh"|')" \
-e "$(printf "%s$out%s" 's|^readonly SYS_SOURCE_PATH="(.*?)"|readonly SYS_SOURCE_PATH="' '/src"|')" \
-e "$(printf "%s$out%s" 's|^readonly USER_SOURCE_PATH="(.*?)"|readonly USER_SOURCE_PATH="' '/src"|')" \
-e 's/\$SUDO git -C "\$SOURCE_PATH" pull --no-rebase//g' \
-e 's|./setup.sh|winapps-setup|g' \
-e 's|\$SUDO ln -s "./bin/winapps" "\$\{BIN_PATH\}/winapps"||' \
-e 's|\$SUDO ln -s "./setup.sh" "\$\{BIN_PATH\}/winapps-setup"||' \
-e "s|\$\{BIN_PATH\}/winapps|$out/bin/winapps|" \
$out/bin/winapps-setup
for f in winapps-setup winapps; do for f in winapps-setup winapps; do
wrapProgram $out/bin/$f \ wrapProgram $out/bin/$f \
--set LIBVIRT_DEFAULT_URI "qemu:///system" \ --set LIBVIRT_DEFAULT_URI "qemu:///system" \
--prefix PATH : "${lib.makeBinPath buildInputs}" --prefix PATH : "${lib.makeBinPath buildInputs}"
done done
runHook postInstall runHook postInstall
''; '';
meta = with lib; { meta = with lib; {
homepage = "https://github.com/winapps-org/winapps"; homepage = "https://github.com/winapps-org/winapps";
description = "Run Windows applications (including Microsoft 365 and Adobe Creative Cloud) on GNU/Linux with KDE, GNOME or XFCE, integrated seamlessly as if they were native to the OS. Wayland is currently unsupported."; description = "Run Windows applications (including Microsoft 365 and Adobe Creative Cloud) on GNU/Linux with KDE, GNOME or XFCE, integrated seamlessly as if they were native to the OS. Wayland is currently unsupported.";
mainProgram = "winapps"; mainProgram = "winapps";
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.gpl3; license = licenses.agpl3Plus;
}; };
} }