]> git.armaanb.net Git - chorizo.git/commitdiff
Move extensions into a subdirectory
authorArmaan Bhojwani <me@armaanb.net>
Sun, 6 Jun 2021 13:40:53 +0000 (09:40 -0400)
committerArmaan Bhojwani <me@armaanb.net>
Sun, 6 Jun 2021 13:49:00 +0000 (09:49 -0400)
.gitignore
Makefile
extensions/we_adblock.c [new file with mode: 0644]
we_adblock.c [deleted file]

index c296e429a56103372827bdceffd60870d64fbcbd..3af3cdafb9a4693ace808f18c651396bf073734b 100644 (file)
@@ -1,5 +1,5 @@
 lariza
-we_adblock.so
+*.so
 darkreader.js
 *.1
 *.5
\ No newline at end of file
index b664dc314e89b6a5128c0a78f76286025744abaa..cec3e110d5c7043b68f1570624b38fd6e7d36cbd 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -8,9 +8,9 @@ datarootdir = $(prefix)/share
 mandir = $(datarootdir)/man/man1
 datadir = $(prefix)/share
 
-.PHONY: man lariza we_adblock.so clean uninstall install
+.PHONY: man lariza extensions clean uninstall install
 
-all: man lariza we_adblock.so darkreader
+all: man lariza extensions darkreader
 
 man:
        for i in man1/*.scd; do \
@@ -25,12 +25,15 @@ lariza: browser.c
                -o $@ $< \
                `pkg-config --cflags --libs gtk+-3.0 glib-2.0 webkit2gtk-4.0`
 
-we_adblock.so: we_adblock.c
-       $(CC) $(CFLAGS) $(LDFLAGS) \
-               -D__NAME__=\"lariza\" \
-               -D__NAME_UPPERCASE__=\"LARIZA\" \
-               -shared -o $@ -fPIC $< \
-               `pkg-config --cflags --libs glib-2.0 webkit2gtk-4.0`
+extensions:
+       for i in extensions/*.c; do \
+               outp=$$(echo "$$i" | sed 's/\$\.c/.so/g'); \
+               $(CC) $(CFLAGS) $(LDFLAGS) \
+                       -D__NAME__=\"lariza\" \
+                       -D__NAME_UPPERCASE__=\"LARIZA\" \
+                       -shared -o $$outp -fPIC $$i \
+                       `pkg-config --cflags --libs glib-2.0 webkit2gtk-4.0`; \
+       done
 
 install: all
        mkdir -p $(DESTDIR)$(bindir) \
@@ -39,9 +42,9 @@ install: all
                $(DESTDIR)$(datadir)/lariza/user-scripts
 
        cp lariza $(DESTDIR)$(bindir)/lariza
-       cp we_adblock.so $(DESTDIR)$(libdir)/lariza/web_extensions/we_adblock.so
        cp man1/* $(DESTDIR)$(mandir)/
        cp lariza.ini $(DESTDIR)/etc/lariza.ini
+       cp -r extensions/*.so $(DESTDIR)$(libdir)/lariza/web_extensions/
        cp -r user-scripts/* $(DESTDIR)$(datadir)/lariza/user-scripts/
 
 uninstall:
diff --git a/extensions/we_adblock.c b/extensions/we_adblock.c
new file mode 100644 (file)
index 0000000..4714fb4
--- /dev/null
@@ -0,0 +1,81 @@
+#include <stdio.h>
+
+#include <glib.h>
+#include <webkit2/webkit-web-extension.h>
+
+
+GSList *adblock_patterns = NULL;
+
+
+void
+adblock_load(void)
+{
+    GRegex *re = NULL;
+    GError *err = NULL;
+    GIOChannel *channel = NULL;
+    gchar *path = NULL, *buf = NULL;
+
+    path = g_build_filename(g_get_user_config_dir(), __NAME__, "adblock",
+                            NULL);
+    channel = g_io_channel_new_file(path, "r", &err);
+    if (channel != NULL)
+    {
+        while (g_io_channel_read_line(channel, &buf, NULL, NULL, NULL)
+               == G_IO_STATUS_NORMAL)
+        {
+            g_strstrip(buf);
+            if (buf[0] != '#')
+            {
+                re = g_regex_new(buf,
+                                 G_REGEX_CASELESS | G_REGEX_OPTIMIZE,
+                                 G_REGEX_MATCH_PARTIAL, &err);
+                if (err != NULL)
+                {
+                    fprintf(stderr, __NAME__": Could not compile regex: %s\n", buf);
+                    g_error_free(err);
+                    err = NULL;
+                }
+                else
+                    adblock_patterns = g_slist_append(adblock_patterns, re);
+            }
+            g_free(buf);
+        }
+        g_io_channel_shutdown(channel, FALSE, NULL);
+    }
+    g_free(path);
+}
+
+gboolean
+web_page_send_request(WebKitWebPage *web_page, WebKitURIRequest *request,
+                      WebKitURIResponse *redirected_response, gpointer user_data)
+{
+    GSList *it = adblock_patterns;
+    const gchar *uri;
+
+    uri = webkit_uri_request_get_uri(request);
+
+    while (it)
+    {
+        if (g_regex_match((GRegex *)(it->data), uri, 0, NULL))
+            return TRUE;
+        it = g_slist_next(it);
+    }
+
+    return FALSE;
+}
+
+void
+web_page_created_callback(WebKitWebExtension *extension, WebKitWebPage *web_page,
+                          gpointer user_data)
+{
+    g_signal_connect_object(web_page, "send-request",
+                            G_CALLBACK(web_page_send_request), NULL, 0);
+}
+
+G_MODULE_EXPORT void
+webkit_web_extension_initialize(WebKitWebExtension *extension)
+{
+    adblock_load();
+    g_signal_connect(extension, "page-created",
+                     G_CALLBACK(web_page_created_callback), NULL);
+}
diff --git a/we_adblock.c b/we_adblock.c
deleted file mode 100644 (file)
index 4714fb4..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-#include <stdio.h>
-
-#include <glib.h>
-#include <webkit2/webkit-web-extension.h>
-
-
-GSList *adblock_patterns = NULL;
-
-
-void
-adblock_load(void)
-{
-    GRegex *re = NULL;
-    GError *err = NULL;
-    GIOChannel *channel = NULL;
-    gchar *path = NULL, *buf = NULL;
-
-    path = g_build_filename(g_get_user_config_dir(), __NAME__, "adblock",
-                            NULL);
-    channel = g_io_channel_new_file(path, "r", &err);
-    if (channel != NULL)
-    {
-        while (g_io_channel_read_line(channel, &buf, NULL, NULL, NULL)
-               == G_IO_STATUS_NORMAL)
-        {
-            g_strstrip(buf);
-            if (buf[0] != '#')
-            {
-                re = g_regex_new(buf,
-                                 G_REGEX_CASELESS | G_REGEX_OPTIMIZE,
-                                 G_REGEX_MATCH_PARTIAL, &err);
-                if (err != NULL)
-                {
-                    fprintf(stderr, __NAME__": Could not compile regex: %s\n", buf);
-                    g_error_free(err);
-                    err = NULL;
-                }
-                else
-                    adblock_patterns = g_slist_append(adblock_patterns, re);
-            }
-            g_free(buf);
-        }
-        g_io_channel_shutdown(channel, FALSE, NULL);
-    }
-    g_free(path);
-}
-
-gboolean
-web_page_send_request(WebKitWebPage *web_page, WebKitURIRequest *request,
-                      WebKitURIResponse *redirected_response, gpointer user_data)
-{
-    GSList *it = adblock_patterns;
-    const gchar *uri;
-
-    uri = webkit_uri_request_get_uri(request);
-
-    while (it)
-    {
-        if (g_regex_match((GRegex *)(it->data), uri, 0, NULL))
-            return TRUE;
-        it = g_slist_next(it);
-    }
-
-    return FALSE;
-}
-
-void
-web_page_created_callback(WebKitWebExtension *extension, WebKitWebPage *web_page,
-                          gpointer user_data)
-{
-    g_signal_connect_object(web_page, "send-request",
-                            G_CALLBACK(web_page_send_request), NULL, 0);
-}
-
-G_MODULE_EXPORT void
-webkit_web_extension_initialize(WebKitWebExtension *extension)
-{
-    adblock_load();
-    g_signal_connect(extension, "page-created",
-                     G_CALLBACK(web_page_created_callback), NULL);
-}