Re-implemented wrapper in C**, added proper cmake recipe.
continuous-integration/drone/push Build is passing Details

This commit is contained in:
tastytea 2019-05-21 13:05:17 +02:00
parent 65c0bfc7ea
commit de5d65d32a
Signed by: tastytea
GPG Key ID: CFC39497F1B26E07
6 changed files with 102 additions and 7 deletions

View File

@ -65,10 +65,7 @@ if (WITH_MAN)
endif()
if (WITH_MOZILLA)
install(FILES
browser-plugins/webextension/native-wrapper/remwharead.json
browser-plugins/webextension/native-wrapper/remwharead_wrapper.sh
DESTINATION "${CMAKE_INSTALL_LIBDIR}/mozilla/native-messaging-hosts")
add_subdirectory(browser-plugins/webextension/native-wrapper)
endif()
if(WITH_TESTS)

View File

@ -18,7 +18,7 @@ function get_tags() // get tags from text input.
}
function onResponse(response) {
console.log("Received " + response);
console.log("Received: " + response);
}
function onError(error) {

View File

@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "remwharead",
"version": "0.1.1",
"version": "0.1.2",
"description": "Integrates remwharead into your Browser.",
"homepage_url": "https://schlomp.space/tastytea/remwharead",

View File

@ -0,0 +1,7 @@
set(MOZILLA_NMH_DIR "${CMAKE_INSTALL_LIBDIR}/mozilla/native-messaging-hosts")
add_executable(${PROJECT_NAME}_wrapper ${PROJECT_NAME}_wrapper.cpp)
install(TARGETS ${PROJECT_NAME}_wrapper DESTINATION ${MOZILLA_NMH_DIR})
install(FILES remwharead.json remwharead_wrapper.sh
DESTINATION ${MOZILLA_NMH_DIR})

View File

@ -1,7 +1,7 @@
{
"name": "remwharead",
"description": "Saves URIs of things you want to remember in a database.",
"path": "/usr/lib/mozilla/native-messaging-hosts/remwharead_wrapper.sh",
"path": "/usr/lib/mozilla/native-messaging-hosts/remwharead_wrapper",
"type": "stdio",
"allowed_extensions": [ "remwharead@tastytea.de" ]
}

View File

@ -0,0 +1,91 @@
/* This file is part of remwharead.
* Copyright © 2019 tastytea <tastytea@tastytea.de>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <string>
#include <iostream>
#include <cstdint>
#include <cstdlib>
#include <sys/wait.h>
using std::string;
using std::cin;
using std::cout;
using std::uint32_t;
using std::system;
const string read_input()
{
string input;
char c;
bool start = false;
while (cin.read(&c, 1).good())
{
if (!start)
{
if (c == '"')
{
start = true;
}
continue;
}
if (c != '"')
{
input += c;
}
else
{
break;
}
}
return input;
}
void send_message(const string &message)
{
uint32_t length = message.length() + 2;
cout.write(reinterpret_cast<const char*>(&length), sizeof(length));
cout << '"' << message << '"';
}
int launch(const string &args)
{
const string cmd = "remwharead " + args + " 2>/dev/null";
int ret = system(cmd.c_str());
if (WIFEXITED(ret))
{
ret = WEXITSTATUS(ret);
}
return ret;
}
int main()
{
const string args = read_input();
int ret = launch(args);
if (ret == 0)
{
send_message("Command successful.");
}
else
{
send_message("Command failed with status: " + std::to_string(ret) + '.');
}
return ret;
}