Mercurial > mozilla > hg > ProfileManager
comparison README.txt @ 2:fc0dabd2269f
add README
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Mon, 05 Apr 2010 09:27:23 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1:979315ed0816 | 2:fc0dabd2269f |
---|---|
1 Profile Management with Firefox (and other?) | |
2 ============================================ | |
3 | |
4 | |
5 Desired Functionality | |
6 --------------------- | |
7 | |
8 See https://wiki.mozilla.org/Auto-tools/Projects/ProfileManager and | |
9 https://bugzilla.mozilla.org/show_bug.cgi?id=539524 : | |
10 | |
11 - backing up profile | |
12 | |
13 - merging | |
14 | |
15 | |
16 profiles.ini | |
17 ------------ | |
18 | |
19 A typical `.mozilla/firefox/profiles.ini` is as follows: | |
20 | |
21 {{{ | |
22 [General] | |
23 StartWithLastProfile=0 | |
24 | |
25 [Profile0] | |
26 Name=default | |
27 IsRelative=1 | |
28 Path=py91jfha.default | |
29 Default=1 | |
30 | |
31 [Profile1] | |
32 Name=Lammy | |
33 IsRelative=1 | |
34 Path=nr0eq10m.Lammy | |
35 }}} | |
36 | |
37 Notes: | |
38 | |
39 - why use identifiers `[Profile0]`, `[Profile1]`, etc instead of the | |
40 actual names ( `[default]`, `[lammy]` )? | |
41 | |
42 - Instead of `Default=1` or `0`, could indicate the version of | |
43 Firefox for which the profile is the default (e.g. `Default=3.6`) | |
44 | |
45 | |
46 Architecture | |
47 ------------ | |
48 | |
49 The architecture should satisfy both user-facing applications | |
50 (i.e. the Firefox ProfileManager) as well as be friendly and malleable | |
51 for testing purposes (e.g. a command line application). All front | |
52 ends (GUI, command-line, web???, etc) should use the same underlying | |
53 API, which will be front-end agnostic. | |
54 | |
55 API | |
56 --- | |
57 | |
58 class ProfileManager(object): | |
59 | |
60 def __init__(self, profiles): | |
61 """ | |
62 profiles: profiles.ini file | |
63 """ | |
64 | |
65 def clone(self, from, to): | |
66 """ | |
67 clones the profile `from` and output to `to` | |
68 """ | |
69 | |
70 def backup(self, profile): | |
71 """ | |
72 backs up the profile named `profile`; | |
73 maybe should be named `snapshot` | |
74 """ | |
75 | |
76 def merge(self, *profiles): | |
77 """merge a set of profiles (not trivial!)""" | |
78 | |
79 Command Line Interface | |
80 ---------------------- | |
81 | |
82 The command line interface should mirror the API. | |
83 | |
84 Options: | |
85 -c CONFIG, --config=CONFIG specify a profiles.ini file | |
86 [default: $HOME/.mozilla/firefox/profiles.ini] | |
87 | |
88 Examples: | |
89 | |
90 `profile-manager clone lammy foo # clone the lammy profile to foo` | |
91 | |
92 `profile-manager backup lammy # make a snapshot of the lammy profile` | |
93 | |
94 | |
95 Questions | |
96 --------- | |
97 | |
98 How to generate the hash key? (e.g. the `py91jfha` in `py91jfha.default`) |