From 84bdc582ea9edebc844b0e25e18a16d22c1bc587 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sat, 31 Aug 2024 01:36:40 +0300 Subject: [PATCH] feat(eaglemode/plugins): bootstrap Yandex Tracker plugin Bootstraps a plugin (that doesn't do anything yet) for accessing Yandex Tracker through Eagle Mode. This commit only initialises the plugin files, it doesn't actually do anything other than print the word "Loaded". API docs for future development: https://yandex.cloud/ru/docs/tracker/about-api The next steps will be to figure out the emModel classes and the threading model for fetching the remote data. Change-Id: Ifce8bc2a61c4fd0c4a591013acbf428a9f5803f8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12398 Tested-by: BuildkiteCI Reviewed-by: tazjin --- tools/eaglemode/plugins/yatracker/default.nix | 18 ++++++ .../emCore/FpPlugins/PlYaTracker.emFpPlugin | 6 ++ tools/eaglemode/plugins/yatracker/logo.webp | Bin 0 -> 13808 bytes .../yatracker/makers/PlYaTracker.maker.pm | 47 ++++++++++++++ .../yatracker/src/PlYaTracker/PlYaTracker.cpp | 58 ++++++++++++++++++ 5 files changed, 129 insertions(+) create mode 100644 tools/eaglemode/plugins/yatracker/default.nix create mode 100644 tools/eaglemode/plugins/yatracker/etc/emCore/FpPlugins/PlYaTracker.emFpPlugin create mode 100644 tools/eaglemode/plugins/yatracker/logo.webp create mode 100644 tools/eaglemode/plugins/yatracker/makers/PlYaTracker.maker.pm create mode 100644 tools/eaglemode/plugins/yatracker/src/PlYaTracker/PlYaTracker.cpp diff --git a/tools/eaglemode/plugins/yatracker/default.nix b/tools/eaglemode/plugins/yatracker/default.nix new file mode 100644 index 000000000..3ffc42029 --- /dev/null +++ b/tools/eaglemode/plugins/yatracker/default.nix @@ -0,0 +1,18 @@ +{ depot, pkgs, ... }: + +let + em = depot.tools.eaglemode; + emSrc = with pkgs; srcOnly eaglemode; +in +(em.buildPlugin { + name = "yatracker"; + version = "canon"; + src = ./.; + target = "PlYaTracker"; +}).overrideAttrs (_: { + postInstall = '' + mkdir -p $out/icons + ${pkgs.imagemagick}/bin/convert $src/logo.webp $out/icons/yandex-tracker.tga + ''; +}) + diff --git a/tools/eaglemode/plugins/yatracker/etc/emCore/FpPlugins/PlYaTracker.emFpPlugin b/tools/eaglemode/plugins/yatracker/etc/emCore/FpPlugins/PlYaTracker.emFpPlugin new file mode 100644 index 000000000..637878844 --- /dev/null +++ b/tools/eaglemode/plugins/yatracker/etc/emCore/FpPlugins/PlYaTracker.emFpPlugin @@ -0,0 +1,6 @@ +#%rec:emFpPlugin%# + +FileTypes = { ".YaTracker" } +Priority = 1.0 +Library = "PlYaTracker" +Function = "PlYaTrackerPluginFunc" diff --git a/tools/eaglemode/plugins/yatracker/logo.webp b/tools/eaglemode/plugins/yatracker/logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..460d57d72c33c79af4f78846dd59990622ab26d6 GIT binary patch literal 13808 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 Dk~hj< literal 0 HcmV?d00001 diff --git a/tools/eaglemode/plugins/yatracker/makers/PlYaTracker.maker.pm b/tools/eaglemode/plugins/yatracker/makers/PlYaTracker.maker.pm new file mode 100644 index 000000000..ae954260a --- /dev/null +++ b/tools/eaglemode/plugins/yatracker/makers/PlYaTracker.maker.pm @@ -0,0 +1,47 @@ +package PlYaTracker; + +use strict; +use warnings; + +sub GetDependencies +{ + return ('emCore'); +} + +sub IsEssential +{ + return 0; +} + +sub GetFileHandlingRules +{ + return (); +} + +sub GetExtraBuildOptions +{ + return (); +} + +sub Build +{ + shift; + my %options=@_; + + system( + @{$options{'unicc_call'}}, + "--math", + "--rtti", + "--exceptions", + "--bin-dir" , "bin", + "--lib-dir" , "lib", + "--obj-dir" , "obj", + "--inc-search-dir", "include", + "--link" , "emCore", + "--type" , "dynlib", + "--name" , "PlYaTracker", + "src/PlYaTracker/PlYaTracker.cpp" + )==0 or return 0; + + return 1; +} diff --git a/tools/eaglemode/plugins/yatracker/src/PlYaTracker/PlYaTracker.cpp b/tools/eaglemode/plugins/yatracker/src/PlYaTracker/PlYaTracker.cpp new file mode 100644 index 000000000..9bf05a171 --- /dev/null +++ b/tools/eaglemode/plugins/yatracker/src/PlYaTracker/PlYaTracker.cpp @@ -0,0 +1,58 @@ +#include +#include +#include +#include + +class PlYaTrackerConfig final : public emRecFileModel, public emStructRec { + public: + static emRef Acquire(emContext& context, + const emString& name, + bool common = true); + + virtual const char* GetFormatName() const; + + emStringRec URL; + emStringRec Token; + + protected: + PlYaTrackerConfig(emContext& context, const emString& name); +}; + +emRef PlYaTrackerConfig::Acquire(emContext& context, + const emString& name, + bool common) { + EM_IMPL_ACQUIRE(PlYaTrackerConfig, context, name, common) +} + +const char* PlYaTrackerConfig::GetFormatName() const { return "PlYaTracker"; } + +PlYaTrackerConfig::PlYaTrackerConfig(emContext& context, const emString& name) + : emRecFileModel(context, name), + emStructRec(), + URL(this, "URL"), + Token(this, "Token") { + PostConstruct(*this); +} + +class PlYaTrackerFilePanel : public emFilePanel { + public: + PlYaTrackerFilePanel(ParentArg parent, const emString& name, + emRef config); + + private: + emRef Config; +}; + +PlYaTrackerFilePanel::PlYaTrackerFilePanel(ParentArg parent, + const emString& name, + emRef config) + : emFilePanel(parent, name, config), Config(config) {} + +extern "C" { +emPanel* PlYaTrackerPluginFunc(emPanel::ParentArg parent, const emString& name, + const emString& path, emFpPlugin* plugin, + emString* errorBuf) { + return new PlYaTrackerFilePanel( + parent, name, PlYaTrackerConfig::Acquire(parent.GetRootContext(), path)); +} +}