#!/usr/bin/perl
use strict;
use warnings;
my $folder = $ARGV[0];
my $url = $ARGV[1];
(my $descr = $folder) =~ s/_+/ /g;
my $longname = 'Perl genarated extension - '.$descr;
mkdir $folder or die "Cannot create $folder: $!";
chdir $folder or die "Cannot enter $folder: $!";
# the manifest
open MANIF, '>', 'manifest.json' or die "Cannot open a file to write in: $!";
my $manifest = '{
"manifest_version": 3,
"description": "'.$descr.'",
"background": {
"service_worker": "background.js"},
"name": "'.$longname.'",
"permissions": [ "contextMenus", "tabs" ],
"version": "1.0"
}';
print MANIF $manifest;
close MANIF;
# the jscript
open JSCRIPT, '>', 'background.js' or die "Cannot open a file to write in: $!";
my $background = 'chrome.runtime.onInstalled.addListener(function() {
chrome.contextMenus.create({
title: "'.$descr.'",
contexts: ["selection"],
id: "'.$descr.'"
});
});
chrome.contextMenus.onClicked.addListener(function (info, tab) {
if (info.menuItemId === "'.$descr.'") {
let getToSite = "'.$url.'" + info.selectionText
chrome.tabs.create({index: tab.index + 1, url: getToSite, selected: true});
}
})';
print JSCRIPT $background;
close JSCRIPT;
####
16c16
< "manifest_version": 2,
---
> "manifest_version": 3,
19c19
< "scripts": ["background.js"]},
---
> "service_worker": "background.js"},
28,33c28,42
< my $background ='function customfunc(info)
< {
< var searchstring = info.selectionText;
< chrome.tabs.create({url: "'.$url.'" + searchstring})
< }
< chrome.contextMenus.create({title: "'.$descr.'", contexts:["selection"], onclick: customfunc});';
---
> my $background = 'chrome.runtime.onInstalled.addListener(function() {
> chrome.contextMenus.create({
> title: "'.$descr.'",
> contexts: ["selection"],
> id: "'.$descr.'"
> });
> });
>
> chrome.contextMenus.onClicked.addListener(function (info, tab) {
> if (info.menuItemId === "'.$descr.'") {
> let getToSite = "'.$url.'" + info.selectionText
> chrome.tabs.create({index: tab.index + 1, url: getToSite, selected: true});
> }
> })';
>
####
{
"manifest_version": 3,
"description": "Description",
"background": {
"service_worker": "background.js"},
"name": "Perl genarated extension - Description",
"permissions": [ "contextMenus", "tabs" ],
"version": "1.0",
"icons": {
"128": "favicon.png",
"16": "favicon.png",
"32": "favicon.png",
"48": "favicon.png",
"64": "favicon.png"
}
}