{
buildGoModule,
fetchFromGitHub,
lib,
pkg-config,
webkitgtk_4_1,
glib,
fuse,
installShellFiles,
wrapGAppsHook3,
glib-networking,
wrapperDir ? "/run/wrappers/bin",
}:
let
pname = "onedriver";
version = "0.14.1";
src = fetchFromGitHub {
owner = "jstaf";
repo = "onedriver";
rev = "v${version}";
hash = "sha256-mA5otgqXQAw2UYUOJaC1zyJuzEu2OS/pxmjJnWsVdxs=";
};
in
buildGoModule {
inherit pname version src;
vendorHash = "sha256-OOiiKtKb+BiFkoSBUQQfqm4dMfDW3Is+30Kwcdg8LNA=";
nativeBuildInputs = [
pkg-config
installShellFiles
wrapGAppsHook3
];
buildInputs = [
webkitgtk_4_1
glib
fuse
glib-networking
ldflags = [ "-X github.com/jstaf/onedriver/cmd/common.commit=v${version}" ];
subPackages = [
"cmd/onedriver"
"cmd/onedriver-launcher"
postInstall = ''
echo "Running postInstall"
install -Dm644 ./pkg/resources/onedriver.svg $out/share/icons/onedriver/onedriver.svg
install -Dm644 ./pkg/resources/onedriver.png $out/share/icons/onedriver/onedriver.png
install -Dm644 ./pkg/resources/onedriver-128.png $out/share/icons/onedriver/onedriver-128.png
install -Dm644 ./pkg/resources/onedriver.desktop $out/share/applications/onedriver.desktop
install -Dm644 ./pkg/resources/onedriver@.service $out/lib/systemd/user/onedriver@.service
mkdir -p $out/share/man/man1
installManPage ./pkg/resources/onedriver.1
substituteInPlace $out/share/applications/onedriver.desktop \
--replace "/usr/bin/onedriver-launcher" "$out/bin/onedriver-launcher" \
--replace "/usr/share/icons" "$out/share/icons"
substituteInPlace $out/lib/systemd/user/onedriver@.service \
--replace "/usr/bin/onedriver" "$out/bin/onedriver" \
--replace "/usr/bin/fusermount" "${wrapperDir}/fusermount"
'';
meta = with lib; {
description = "Network filesystem for Linux";
longDescription = ''
onedriver is a network filesystem that gives your computer direct access to your files on Microsoft OneDrive.
This is not a sync client. Instead of syncing files, onedriver performs an on-demand download of files when
your computer attempts to use them. onedriver allows you to use files on OneDrive as if they were files on
your local computer.
inherit (src.meta) homepage;
license = licenses.gpl3Plus;
maintainers = [ maintainers.massimogengarelli ];
platforms = platforms.linux;
}