extensions/*/enabled is readable (+ test that works)

This commit is contained in:
Omar Rizwan 2020-12-22 20:34:01 -08:00
parent e6f9ce7437
commit 35214c9698
3 changed files with 25 additions and 1 deletions

View file

@ -60,6 +60,14 @@ $ echo remove | tee -a mnt/tabs/by-title/*Stack_Overflow*/control
$ cat mnt/tabs/by-id/*/text > text.txt
```
### TODO: Reload an extension when you edit its source code
Making anohter extension?
SO post.
We can subsume that.
### TODO: Manage tabs in Emacs dired
I do this

View file

@ -326,6 +326,14 @@ router["/extensions"] = {
return { entries: [".", "..", ...infos.map(info => `${sanitize(info.name)}_${info.id}`)] };
}
};
router["/extensions/*/enabled"] = defineFile(async path => {
const parts = pathComponent(path, -2).split('_'); const extensionId = parts[parts.length - 1];
const info = await browser.management.get(extensionId);
return String(info.enabled);
}, async (path, buf) => {
await browser.management.setEnabled();
});
// Ensure that there are routes for all ancestors. This algorithm is
// probably not correct, but whatever. I also think it would be

10
test.c
View file

@ -6,6 +6,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <wordexp.h>
int file_contents_equal(char* path, char* contents) {
// hehe: https://twitter.com/ianh_/status/1340450349065244675
@ -14,12 +15,19 @@ int file_contents_equal(char* path, char* contents) {
return system("[ \"$contents\" == \"$(cat \"$path\")\" ]") == 0;
}
char* expand(char* phrase) {
wordexp_t result; assert(wordexp(phrase, &result, 0) == 0);
return result.we_wordv[0];
}
// integration tests
int main() {
assert(system("echo about:blank > fs/mnt/tabs/create") == 0);
assert(file_contents_equal("fs/mnt/tabs/last-focused/url", "about:blank"));
assert(system("file fs/mnt/tabs/last-focused/screenshot.png") == 0);
/* assert(system("file fs/mnt/tabs/last-focused/screenshot.png") == 0); */
assert(system("echo remove > fs/mnt/tabs/last-focused/control") == 0);
assert(file_contents_equal(expand("fs/mnt/extensions/TabFS*/enabled"), "true"));
assert(1); printf("Done!\n");
}