Commit e5fa77e7 authored by Mostly Void's avatar Mostly Void Committed by Yt
Browse files

xplorer: init at unstable-2023-03-19

parent 62c557d5
Loading
Loading
Loading
Loading
+4672 −0

File added.

Preview size limit exceeded, changes collapsed.

+94 −0
Original line number Diff line number Diff line
{ lib
, cmake
, dbus
, fetchFromGitHub
, fetchYarnDeps
, freetype
, gtk3
, libsoup
, mkYarnPackage
, openssl
, pkg-config
, rustPlatform
, webkitgtk
}:

let

  pname = "xplorer";
  version = "unstable-2023-03-19";

  src = fetchFromGitHub {
    owner = "kimlimjustin";
    repo = pname;
    rev = "8d69a281cbceda277958796cb6b77669fb062ee3";
    sha256 = "sha256-VFRdkSfe2mERaYYtZlg9dvH1loGWVBGwiTRj4AoNEAo=";
  };

  frontend-build = mkYarnPackage {
    inherit version src;
    pname = "xplorer-ui";

    offlineCache = fetchYarnDeps {
      yarnLock = src + "/yarn.lock";
      sha256 = "sha256-H37vD0GTSsWV5UH7C6UANDWnExTGh8yqajLn3y7P2T8=";
    };

    packageJSON = ./package.json;

    buildPhase = ''
      export HOME=$(mktemp -d)
      yarn --offline run prebuild

      cp -r deps/xplorer/out $out
    '';

    distPhase = "true";
    dontInstall = true;
  };
in

rustPlatform.buildRustPackage {
  inherit version src pname;

  sourceRoot = "source/src-tauri";

  cargoLock = {
    lockFile = ./Cargo.lock;
    outputHashes = {
      "tauri-plugin-window-state-0.1.0" = "sha256-DkKiwBwc9jrxMaKWOyvl9nsBJW0jBe8qjtqIdKJmsnc=";
      "window-shadows-0.2.0" = "sha256-e1afzVjVUHtckMNQjcbtEQM0md+wPWj0YecbFvD0LKE=";
      "window-vibrancy-0.3.0" = "sha256-0psa9ZtdI0T6sC1RJ4GeI3w01FdO2Zjypuk9idI5pBY=";
    };
  };

  # copy the frontend static resources to final build directory
  # Also modify tauri.conf.json so that it expects the resources at the new location
  postPatch = ''
    cp ${./Cargo.lock} Cargo.lock

    mkdir -p frontend-build
    cp -R ${frontend-build}/src frontend-build

    substituteInPlace tauri.conf.json --replace '"distDir": "../out/src",' '"distDir": "frontend-build/src",'
  '';

  buildInputs = [ dbus openssl freetype libsoup gtk3 webkitgtk cmake ];
  nativeBuildInputs = [ pkg-config ];

  checkFlags = [
    # tries to mutate the parent directory
    "--skip=test_file_operation"
  ];

  postInstall = ''
    mv $out/bin/app $out/bin/xplorer
  '';

  meta = with lib; {
    description = "A customizable, modern file manager";
    homepage = "https://xplorer.space";
    license = licenses.asl20;
    maintainers = with maintainers; [ dit7ya ];
  };
}
+88 −0
Original line number Diff line number Diff line
{
  "name": "xplorer",
  "description": "Xplorer, a customizable, modern file manager",
  "version": "0.3.1",
  "author": "Justin Maximillian Kimlim <kimlimjustin@gmail.com>",
  "icon": "build/icon.icns",
  "private": true,
  "homepage": "https://xplorer.space",
  "repository": {
    "type": "git",
    "url": "https://github.com/kimlimjustin/xplorer.git"
  },
  "os": ["darwin", "win32", "linux"],
  "scripts": {
    "start": "yarn dev",
    "web": "concurrently \"cd api/web && cargo run\" \"live-server ./out/src --no-browser\"",
    "dev": "yarn compile && concurrently --kill-others \"yarn compile:watch\" \"yarn sass:watch\" \"yarn web\" \"tauri dev\"",
    "clean": "rimraf out",
    "sass": "sass src/Public/style.scss out/src/Public/style.css",
    "sass:watch": "node scripts/sass-watcher.js",
    "docs": "yarn --cwd ./docs start",
    "pretest": "yarn compile",
    "test": "jest",
    "copyfiles": "node scripts/copyfiles",
    "compile": "webpack && yarn sass && yarn copyfiles",
    "compile:watch": "webpack --watch",
    "crowdin": "crowdin",
    "crowdin:pull": "crowdin pull",
    "postcrowdin:pull": "node scripts/post_crowdin_pull.js",
    "crowdin:sync": "yarn --cwd ./docs write-translations && crowdin upload && crowdin download",
    "lint": "eslint -c .eslintrc.yml --ext .ts ./src",
    "prettier": "prettier --write src",
    "grunt": "grunt",
    "css:minify": "cleancss --batch --batch-suffix \"\" out/**/*.css ",
    "prebuild": "yarn compile && yarn grunt && yarn css:minify",
    "build": "tauri build",
    "postinstall": "husky install",
    "fakefiles": "python scripts/generate-fake-files.py 1000"
  },
  "workspaces": ["packages/*"],
  "keywords": [
    "Xplorer",
    "File explorer",
    "File",
    "File manager",
    "Folders",
    "Directory"
  ],
  "license": "Apache-2.0",
  "devDependencies": {
    "@crowdin/cli": "^3.6.5",
    "@tauri-apps/cli": "^1.1.1",
    "@types/jest": "^27.0.2",
    "@types/marked": "^4.0.1",
    "@typescript-eslint/eslint-plugin": "^5.4.0",
    "@typescript-eslint/parser": "^5.4.0",
    "buffer": "^6.0.3",
    "clean-css-cli": "^5.3.3",
    "concurrently": "^6.2.1",
    "cpy": "^8.1.2",
    "eslint": "^8.2.0",
    "grunt": "^1.4.1",
    "grunt-cli": "^1.4.3",
    "grunt-contrib-uglify": "^5.0.1",
    "grunt-contrib-watch": "^1.1.0",
    "husky": "^7.0.2",
    "jest": "^27.1.0",
    "live-server": "^1.2.1",
    "node-watch": "^0.7.1",
    "postinstall-postinstall": "^2.1.0",
    "prettier": "2.5.1",
    "rimraf": "^3.0.2",
    "sass": "1.45.2",
    "ts-jest": "^27.0.7",
    "ts-loader": "^9.2.6",
    "typescript": "^4.4.2",
    "webpack": "^5.58.2",
    "webpack-cli": "^4.9.0"
  },
  "dependencies": {
    "@tauri-apps/api": "^1.1.0",
    "highlight.js": "^11.2.0",
    "mammoth": "^1.4.18",
    "marked": "^4.0.15",
    "xlsx": "^0.17.1"
  },
  "optionalDependencies": {}
}
+2 −0
Original line number Diff line number Diff line
@@ -2554,6 +2554,8 @@ with pkgs;
  xplr = callPackage ../applications/file-managers/xplr { };
  xplorer = callPackage ../applications/file-managers/xplorer { };
  ytree = callPackage ../applications/file-managers/ytree { };
  ### APPLICATIONS/TERMINAL-EMULATORS