summaryrefslogtreecommitdiff
path: root/firefox-sideloader/cli.code.sh
blob: a13a205ac7e6e4e3ff6e8cce874801b92867ef22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash

JQ()
{
    start_label "$1"
    (exec < "${1/.lz4/.unused}"
    shift
    jq "$@")
    end_label
}

JQpref()
{
    pref=extensions.webextensions.uuids
    val=$(get_user_pref "$pref" | jq -c "{ \"${extension_id}\" , }")

    start_label "prefs.js"
    printf 'user_pref("%s", "%q");\n' "$pref" "$val"
    end_label
}

start_label() { printf '%s\n' "## $1" '```'; }
end_label() { echo '```'; }

blocky()
{
    echo '```'
    cat
    echo '```'
}

get_user_pref()
{
    local pref="$1"
    sed -n 's/^user_pref("'"$pref"'", "\(.*\)");$/\1/p;' prefs.js | (read line; eval 'a="$line"'; echo "$a" | jq .)
}

get_uuid_json()
{
    get_user_pref "extensions.webextensions.uuids"
}

jqs()
{
    extension_id=extension@tabliss.io

    JQ addonStartup.json.lz4 \
       '{"app-profile": {"addons": .["app-profile"].addons["'"${extension_id}"'"]}}'

    (set -x; mozlz4 addonStartup.json.lz4 | jq -c '.["app-profile"]["addons"]["extension@tabliss.io"] | keys') 2>&1 | blocky

    JQ extension-preferences.json \
       '{"extension@tabliss.io"}'

    (set -x; jq -c '.["'"${extension_id}"'"] | keys' extension-preferences.json) 2>&1 | blocky

    JQ extensions.json \
       '{ addons: [ .addons[] | select(.id == "'"${extension_id}"'") ] }'

    (set -x; jq -c '.addons[] | select(.id == "'"${extension_id}"'") | keys' extensions.json) 2>&1 | blocky

    JQ extension-settings.json \
       '.url_overrides.newTabURL.precedenceList[] | select(.id == "'"${extension_id}"'") | {url_overrides: {newTabURL: {precedenceList: .}}}'

    (set -x; jq -c keys extension-settings.json) 2>&1 | blocky

    JQpref

}