Unverified Commit 00915de6 authored by TomaSajt's avatar TomaSajt
Browse files

v2raya: remove mkYarnPackage usage

parent b6050e73
Loading
Loading
Loading
Loading
+39 −40
Original line number Diff line number Diff line
{ lib
, fetchFromGitHub
, mkYarnPackage
, buildGoModule
, makeWrapper
, v2ray
, v2ray-geoip
, v2ray-domain-list-community
, symlinkJoin
, fetchYarnDeps
{
  lib,
  stdenv,
  buildGoModule,
  fetchFromGitHub,
  fetchYarnDeps,
  symlinkJoin,

  yarnConfigHook,
  yarnBuildHook,
  nodejs,

  makeWrapper,
  v2ray,
  v2ray-geoip,
  v2ray-domain-list-community,
}:
let
  pname = "v2raya";
@@ -16,52 +22,44 @@ let
  src = fetchFromGitHub {
    owner = "v2rayA";
    repo = "v2rayA";
    rev = "v${version}";
    rev = "refs/tags/v${version}";
    hash = "sha256-tXVyroQ2yXwLe+OulvVQYgfd9EcC87S0L8d7w5gLnMI=";
    postFetch = "sed -i -e 's/npmmirror/yarnpkg/g' $out/gui/yarn.lock";
  };
  guiSrc = "${src}/gui";

  web = mkYarnPackage {
    inherit pname version;
  web = stdenv.mkDerivation {
    inherit pname version src;

    src = guiSrc;
    packageJSON = ./package.json;
    sourceRoot = "${src.name}/gui";

    offlineCache = fetchYarnDeps {
      yarnLock = "${guiSrc}/yarn.lock";
      sha256 = "sha256-AZIYkW2u1l9IaDpR9xiKNpc0sGAarLKwHf5kGnzdpKw=";
      yarnLock = "${src}/gui/yarn.lock";
      hash = "sha256-AZIYkW2u1l9IaDpR9xiKNpc0sGAarLKwHf5kGnzdpKw=";
    };

    buildPhase = ''
      runHook preBuild
      OUTPUT_DIR=$out yarn --offline build
      runHook postBuild
    '';

    configurePhase = ''
      runHook preConfigure
      cp -r $node_modules node_modules
      chmod +w node_modules
      runHook postConfigure
    '';

    distPhase = "true";
    env.OUTPUT_DIR = placeholder "out";

    dontInstall = true;
    dontFixup = true;
    nativeBuildInputs = [
      yarnConfigHook
      yarnBuildHook
      nodejs
    ];
  };

  assetsDir = symlinkJoin {
    name = "assets";
    paths = [ v2ray-geoip v2ray-domain-list-community ];
    paths = [
      v2ray-geoip
      v2ray-domain-list-community
    ];
  };

in
buildGoModule {
  inherit pname version;
  inherit pname version src;

  sourceRoot = "${src.name}/service";

  src = "${src}/service";
  vendorHash = "sha256-8MSNTKeN0N2/yaHnXsKmxzw9vRy+E5q60IpwLycqC2I=";

  ldflags = [
@@ -73,15 +71,16 @@ buildGoModule {
  subPackages = [ "." ];

  nativeBuildInputs = [ makeWrapper ];

  preBuild = ''
    cp -a ${web} server/router/web
  '';

  postInstall = ''
    install -Dm 444 ${src}/install/universal/v2raya.desktop -t $out/share/applications
    install -Dm 444 ${src}/install/universal/v2raya.png -t $out/share/icons/hicolor/512x512/apps
    install -Dm 444 ../install/universal/v2raya.desktop -t $out/share/applications
    install -Dm 444 ../install/universal/v2raya.png -t $out/share/icons/hicolor/512x512/apps
    substituteInPlace $out/share/applications/v2raya.desktop \
      --replace 'Icon=/usr/share/icons/hicolor/512x512/apps/v2raya.png' 'Icon=v2raya'
      --replace-fail 'Icon=/usr/share/icons/hicolor/512x512/apps/v2raya.png' 'Icon=v2raya'

    wrapProgram $out/bin/v2rayA \
      --prefix PATH ":" "${lib.makeBinPath [ v2ray ]}" \
+0 −59
Original line number Diff line number Diff line
{
  "name": "v2raya",
  "version": "0.1.0",
  "private": true,
  "license": "GPL-3.0",
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "resolutions": {
    "@achrinza/node-ipc": "^10",
    "@achrinza/event-pubsub": "^5"
  },
  "dependencies": {
    "@achrinza/node-ipc": "^10.1.10",
    "@mdi/font": "^5.8.55",
    "@nuintun/qrcode": "^3.3.0",
    "@vue/babel-preset-app": "^4.2.2",
    "axios": "^0.21.1",
    "buefy": "^0.9.22",
    "clipboard": "^2.0.4",
    "dayjs": "^1.10.6",
    "js-base64": "^2.5.1",
    "nanoid": "^3.1.23",
    "normalize.css": "^8.0.1",
    "pace-js": "^1.2.4",
    "qrcode": "^1.4.2",
    "register-service-worker": "^1.6.2",
    "vue": "^2.7.14",
    "vue-i18n": "^8.15.3",
    "vue-router": "^3.0.6",
    "vue-virtual-scroller": "^1.0.10",
    "vuex": "^3.0.1",
    "webpack-iconfont-plugin-nodejs": "^1.0.16"
  },
  "devDependencies": {
    "@babel/core": "^7.12.16",
    "@babel/eslint-parser": "^7.12.16",
    "@vue/cli-plugin-babel": "~5.0.8",
    "@vue/cli-plugin-eslint": "~5.0.8",
    "@vue/cli-plugin-router": "~5.0.8",
    "@vue/cli-plugin-vuex": "~5.0.8",
    "@vue/cli-service": "~5.0.8",
    "@vue/eslint-config-prettier": "^5.0.0",
    "compression-webpack-plugin": "^10.0.0",
    "css-loader": "^5.2.0",
    "eslint": "^7.32.0",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-prettier": "^4.0.0",
    "eslint-plugin-vue": "^8.0.3",
    "highlight.js": "^11.4.0",
    "prettier": "^2.4.1",
    "sass": "^1.19.0",
    "sass-loader": "^8.0.0",
    "terser-webpack-plugin": "^5.3.6",
    "urijs": "^1.19.11"
  }
}