diff options
-rw-r--r-- | firefox-sideloader/functions.sh | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/firefox-sideloader/functions.sh b/firefox-sideloader/functions.sh index 7b144df..ace764a 100644 --- a/firefox-sideloader/functions.sh +++ b/firefox-sideloader/functions.sh | |||
@@ -58,12 +58,17 @@ illustrate_leak() | |||
58 | prof=$(get_default_firefox_profile_dir) && jq . < "$prof"/extensions.json | grep "$HOME" | 58 | prof=$(get_default_firefox_profile_dir) && jq . < "$prof"/extensions.json | grep "$HOME" |
59 | } | 59 | } |
60 | 60 | ||
61 | copy_extensions_json() | 61 | copy_file_with_filter() |
62 | { | 62 | { |
63 | local new="$1" old="$2" f='extensions.json' filter_json | 63 | local new="$1" old="$2" f="$3" filter_json |
64 | filter_json="s/${old//\//\\/}/${new//\//\\/}/g" | 64 | filter_json="s/${old//\//\\/}/${new//\//\\/}/g" |
65 | [ -d "$old" -a -d "$new" ] || return | 65 | [ -d "$old" -a -d "$new" ] || return |
66 | sed -e "$filter_json" > "$new"/"$f" < "$old"/"$f" | 66 | touch --reference="$old"/"$f" "$new"/"$f" || return |
67 | chmod --reference="$old"/"$f" "$new"/"$f" || return | ||
68 | case "$f" in | ||
69 | *lz4) mozlz4 - < "$old"/"$f" | sed -e "$filter_json" | mozlz4 -z - > "$new"/"$f" ;; | ||
70 | *) sed -e "$filter_json" < "$old"/"$f" > "$new"/"$f" ;; | ||
71 | esac | ||
67 | } | 72 | } |
68 | 73 | ||
69 | clone_profile_raw() | 74 | clone_profile_raw() |
@@ -77,9 +82,10 @@ clone_profile_raw() | |||
77 | [ "$new_profile_dir" ] || return | 82 | [ "$new_profile_dir" ] || return |
78 | [ "$new_profile_dir" != "$old_profile_dir" ] || return | 83 | [ "$new_profile_dir" != "$old_profile_dir" ] || return |
79 | 84 | ||
80 | cp -r --preserve=mode,timestamps -t "$new_profile_dir" -- "$old_profile_dir"/extensions/ || return | 85 | cp -r --preserve=mode,timestamps -t "$new_profile_dir" -- "$old_profile_dir"/{extensions/,extension-{setting,preference}s.json} || return |
81 | 86 | ||
82 | copy_extensions_json "$new_profile_dir" "$old_profile_dir" | 87 | copy_file_with_filter "$new_profile_dir" "$old_profile_dir" 'extensions.json' |
88 | copy_file_with_filter "$new_profile_dir" "$old_profile_dir" 'addonStartup.json.lz4' | ||
83 | } | 89 | } |
84 | 90 | ||
85 | clone_profile() | 91 | clone_profile() |