lol

onedrivegui: init at 1.0.3

authored by

John Garcia and committed by
Peter Hoeg
a2f9450f 8970fe57

+87
+87
pkgs/by-name/on/onedrivegui/package.nix
··· 1 + { lib 2 + , python3Packages 3 + , fetchFromGitHub 4 + , writeText 5 + , copyDesktopItems 6 + , makeDesktopItem 7 + , makeWrapper 8 + , onedrive 9 + }: 10 + 11 + let 12 + version = "1.0.3"; 13 + 14 + setupPy = writeText "setup.py" '' 15 + from setuptools import setup 16 + setup( 17 + name='onedrivegui', 18 + version='${version}', 19 + scripts=[ 20 + 'src/OneDriveGUI.py', 21 + ], 22 + ) 23 + ''; 24 + 25 + in 26 + python3Packages.buildPythonApplication rec { 27 + pname = "onedrivegui"; 28 + inherit version; 29 + 30 + src = fetchFromGitHub { 31 + owner = "bpozdena"; 32 + repo = "OneDriveGUI"; 33 + rev = "v${version}"; 34 + hash = "sha256-HutziAzhIDYP8upNPieL2GNrxPBHUCVs09FFxdSqeBs="; 35 + }; 36 + 37 + nativeBuildInputs = [ copyDesktopItems makeWrapper ]; 38 + 39 + propagatedBuildInputs = with python3Packages; [ pyside6 requests ]; 40 + 41 + # wrap manually to avoid having a bash script in $out/bin with a .py extension 42 + dontWrapPythonPrograms = true; 43 + 44 + doCheck = false; # No tests defined 45 + pythonImportsCheck = [ "OneDriveGUI" ]; 46 + 47 + desktopItems = [ 48 + (makeDesktopItem { 49 + name = "OneDriveGUI"; 50 + exec = "onedrivegui"; 51 + desktopName = "OneDriveGUI"; 52 + comment = "OneDrive GUI Client"; 53 + type = "Application"; 54 + icon = "OneDriveGUI"; 55 + terminal = false; 56 + categories = [ "Utility" ]; 57 + }) 58 + ]; 59 + 60 + postPatch = '' 61 + # Patch OneDriveGUI.py so DIR_PATH points to shared files location 62 + sed -i src/OneDriveGUI.py -e "s@^DIR_PATH =.*@DIR_PATH = '$out/share/OneDriveGUI'@" 63 + cp ${setupPy} ${setupPy.name} 64 + ''; 65 + 66 + postInstall = '' 67 + mkdir -p $out/share/OneDriveGUI 68 + # we do not need the `ui` directory - only resources 69 + cp -r src/resources $out/share/OneDriveGUI 70 + install -Dm444 -t $/out/share/icons/hicolor/48x48/apps src/resources/images/OneDriveGUI.png 71 + # we put our own executable wrapper in place instead 72 + rm -r $out/bin/* 73 + 74 + makeWrapper ${python3Packages.python.interpreter} $out/bin/onedrivegui \ 75 + --prefix PATH : ${lib.makeBinPath [ onedrive ]} \ 76 + --prefix PYTHONPATH : ${python3Packages.makePythonPath (propagatedBuildInputs ++ [(placeholder "out")])} \ 77 + --add-flags $out/lib/${python3Packages.python.libPrefix}/site-packages/OneDriveGUI.py 78 + ''; 79 + 80 + meta = with lib; { 81 + homepage = "https://github.com/bpozdena/OneDriveGUI"; 82 + description = "A simple GUI for Linux OneDrive Client, with multi-account support"; 83 + license = licenses.gpl3Only; 84 + maintainers = with maintainers; [ jgarcia ]; 85 + platforms = platforms.linux; 86 + }; 87 + }