first commit
This commit is contained in:
commit
d1cdcf6ffe
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
result
|
25
flake.lock
generated
Normal file
25
flake.lock
generated
Normal file
@ -0,0 +1,25 @@
|
||||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1699725108,
|
||||
"narHash": "sha256-NTiPW4jRC+9puakU4Vi8WpFEirhp92kTOSThuZke+FA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "911ad1e67f458b6bcf0278fa85e33bb9924fed7e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
63
flake.nix
Normal file
63
flake.nix
Normal file
@ -0,0 +1,63 @@
|
||||
{
|
||||
description = "Nutstore on NixOS";
|
||||
|
||||
outputs = { self, nixpkgs }:
|
||||
let
|
||||
systems = [ "x86_64-linux" ];
|
||||
forEachSystem = nixpkgs.lib.genAttrs systems;
|
||||
in
|
||||
{
|
||||
packages = forEachSystem (system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
in
|
||||
rec {
|
||||
nutstore-unwrapped = (pkgs.buildFHSEnv {
|
||||
name = "nutstore-unwrapped";
|
||||
targetPkgs = pkgs: (with pkgs; [
|
||||
udev
|
||||
alsa-lib
|
||||
zlib
|
||||
cairo
|
||||
glib
|
||||
webkitgtk
|
||||
|
||||
gtk3
|
||||
libnotify
|
||||
(python3.withPackages (pythonPackages: with pythonPackages; [
|
||||
pygobject3
|
||||
]))
|
||||
]) ++ (with pkgs.xorg; [
|
||||
libX11
|
||||
libXcursor
|
||||
libXrandr
|
||||
]);
|
||||
multiPkgs = pkgs: (with pkgs; [
|
||||
udev
|
||||
alsa-lib
|
||||
]);
|
||||
runScript = ''env GI_TYPELIB_PATH=/usr/lib/girepository-1.0 python $HOME/.nutstore/dist/bin/nutstore-pydaemon.py'';
|
||||
});
|
||||
nutstore = pkgs.stdenv.mkDerivation {
|
||||
name = "nutstore";
|
||||
pname = "0.0.1";
|
||||
|
||||
src = ./.;
|
||||
|
||||
buildInputs = [
|
||||
pkgs.makeWrapper
|
||||
];
|
||||
|
||||
installPhase = let
|
||||
desktopEntry = ./nutstore-menu.desktop;
|
||||
in ''
|
||||
mkdir -p $out/bin $out/share/applications
|
||||
makeWrapper ${nutstore-unwrapped}/bin/nutstore-unwrapped $out/bin/nutstore
|
||||
sed "s,Exec=.*,Exec=$out/bin/nutstore,; s,Icon=.*,Icon=${./share/icons/hicolor/512x512/apps/nutstore.png}," ${desktopEntry} > $out/share/applications/nutstore-menu.desktop
|
||||
'';
|
||||
};
|
||||
|
||||
default = nutstore;
|
||||
});
|
||||
};
|
||||
}
|
32
install.sh
Normal file
32
install.sh
Normal file
@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
set -eu pipefail
|
||||
|
||||
if [ ! -d ~/.nutstore/dist ]; then
|
||||
TEMP=$(mktemp -d)
|
||||
BASE_DIR=$TEMP/dist
|
||||
|
||||
curl -sSL https://www.jianguoyun.com/static/exe/installer/nutstore_linux_dist_x64.tar.gz -o $TEMP/nutstore_linux_dist_x64.tar.gz
|
||||
mkdir $BASE_DIR
|
||||
tar xvf $TEMP/nutstore_linux_dist_x64.tar.gz -C $BASE_DIR
|
||||
|
||||
AUTOSTART_DIR=~/.config/autostart
|
||||
MENU_DIR=~/.local/share/applications
|
||||
ICON_DIR=~/.local/share/icons/hicolor/512x512/apps
|
||||
|
||||
mkdir -p $AUTOSTART_DIR
|
||||
cp $BASE_DIR/gnome-config/autostart/*.desktop $AUTOSTART_DIR
|
||||
|
||||
mkdir -p $MENU_DIR
|
||||
cp $BASE_DIR/gnome-config/menu/*.desktop $MENU_DIR
|
||||
|
||||
mkdir -p $ICON_DIR
|
||||
cp $BASE_DIR/app-icon/nutstore.png $ICON_DIR
|
||||
|
||||
# we need to update icon cache
|
||||
gtk-update-icon-cache --ignore-theme-index $ICON_DIR/../.. > /dev/null 2>&1
|
||||
|
||||
echo "Install Nutstore done."
|
||||
echo "Now you can start Nutstore from menu: Applications > Internet > Nutstore"
|
||||
fi
|
||||
|
12
nutstore-menu.desktop
Normal file
12
nutstore-menu.desktop
Normal file
@ -0,0 +1,12 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
Terminal=false
|
||||
Icon=nutstore
|
||||
Exec=/usr/bin/bash install.sh
|
||||
StartupWMClass=Nutstore
|
||||
Name=Nutstore
|
||||
Name[zh_CN]=坚果云
|
||||
Comment=Data Sync, Sharing, Backup
|
||||
Comment[zh_CN]=数据同步,共享和备份
|
||||
Categories=Network;Application;
|
BIN
share/icons/hicolor/512x512/apps/nutstore.png
Normal file
BIN
share/icons/hicolor/512x512/apps/nutstore.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 60 KiB |
Loading…
x
Reference in New Issue
Block a user