Fix mistake in dnf-repoquery-by-srpm documentation.
[utils/utils.git] / firefox-isolated
CommitLineData
273c3903
MM
1#!/bin/bash
2# Runs an isolated Firefox session in its own profile. - Matt 2007-12-02
3
4#set -x
5
6MDD=~/.mozilla/firefox
7
8function write_profiles_ini {
9 (
10 echo '[General]'
11 echo 'StartWithLastProfile=1'
12 echo
13 i=0
14 for dir in *.*; do
15 if [ -d "$dir" ]; then
16 name="${dir#*.}"
17 echo "[Profile$i]"
18 echo "Name=$name"
19 echo "IsRelative=1"
20 echo "Path=$dir"
21 echo
22 let i=$i+1
23 fi
24 done
25 ) >profiles.ini.tmp
26 mv profiles.ini.tmp profiles.ini
27}
28
29function new_profile {
30 name="isolated-$$-$(date +%s)"
31 cp2 00000000.master/ "00000000.$name/"
32 write_profiles_ini
33 echo "$name"
34}
35
36function liquidate_profile {
37 dir="00000000.$name"
38 cdir="changes_$name"
39 rsync -rl --compare-dest=../00000000.master --checksum "$dir/" "$cdir/"
40 rm -rf "$dir"
41 write_profiles_ini
42 find "$cdir" -type d -empty -delete
43 if [ -e "$cdir" ]; then
44 find_out="$(find "$cdir" -type f -print)"
45 zenity --info --text="This session changed the following files; you may wish to review the changes for application to the master profile:
46
47$find_out"
48 fi
49}
50
51function run_isolated {
52 ff="$1"
53 shift
54 name="$(cd "$MDD"; new_profile)"
55 zenity --info --text="Beginning isolated Firefox session $name"
56 "$ff" -no-remote -P "$name" "$@"
57 (cd "$MDD"; liquidate_profile "$name")
58}
59
60run_isolated /usr/bin/firefox "$@"