#!/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;