Merge lp:~townsend/libertine/puritine-favorite-libertine-scope into lp:libertine

Proposed by Christopher Townsend
Status: Merged
Approved by: Larry Price
Approved revision: 274
Merged at revision: 273
Proposed branch: lp:~townsend/libertine/puritine-favorite-libertine-scope
Merge into: lp:libertine
Diff against target: 102 lines (+66/-18)
1 file modified
tools/update-puritine-containers (+66/-18)
To merge this branch: bzr merge lp:~townsend/libertine/puritine-favorite-libertine-scope
Reviewer Review Type Date Requested Status
Larry Price Approve
Libertine CI Bot continuous-integration Approve
Review via email: mp+300393@code.launchpad.net

Commit message

Add functionality to "favorite" the Libertine scope upon first installation of the Puritine click package.

To post a comment you must log in.
274. By Christopher Townsend

Remove extra line.

Revision history for this message
Libertine CI Bot (libertine-ci-bot) wrote :

PASSED: Continuous integration, rev:274
https://jenkins.canonical.com/libertine/job/lp-libertine-ci/56/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/libertine/job/build/184
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=default/144
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=default/144
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=default/144
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=i386,release=vivid+overlay,testname=default/144
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=i386,release=xenial+overlay,testname=default/144
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=i386,release=yakkety,testname=default/144
    None: https://jenkins.canonical.com/libertine/job/lp-generic-update-mp/143/console
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-0-fetch/187
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-1-sourcepkg/release=vivid+overlay/172
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-1-sourcepkg/release=xenial+overlay/172
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-1-sourcepkg/release=yakkety/172
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=vivid+overlay/165
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=vivid+overlay/165/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=xenial+overlay/165
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=xenial+overlay/165/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=yakkety/165
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=yakkety/165/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=vivid+overlay/165
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=vivid+overlay/165/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=xenial+overlay/165
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=xenial+overlay/165/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=yakkety/165
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=yakkety/165/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/libertine/job/lp-libertine-ci/56/rebuild

review: Approve (continuous-integration)
Revision history for this message
Larry Price (larryprice) wrote :

verified works

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'tools/update-puritine-containers'
--- tools/update-puritine-containers 2016-06-10 20:34:33 +0000
+++ tools/update-puritine-containers 2016-07-18 21:00:41 +0000
@@ -23,10 +23,20 @@
23import shutil23import shutil
24import subprocess24import subprocess
2525
26from gi.repository import GLib, Gio
27
26puritine_hook_dir = os.path.join(os.environ['HOME'], '.cache', 'libertine', 'puritine')28puritine_hook_dir = os.path.join(os.environ['HOME'], '.cache', 'libertine', 'puritine')
27puritine_symlink_farm_file = os.path.join(puritine_hook_dir, 'PuritineSymlinkFarm.json')29puritine_symlink_farm_file = os.path.join(puritine_hook_dir, 'PuritineSymlinkFarm.json')
28puritine_click_config_file = os.path.join('libertine-config', 'libertine', 'ContainersConfig.json')30puritine_click_config_file = os.path.join('libertine-config', 'libertine', 'ContainersConfig.json')
2931
32def symlink_farm_entries_count():
33 if (puritine_symlink_farm_list and
34 puritine_symlink_farm_list['customContainers']):
35 return len(puritine_symlink_farm_list['customContainers'])
36
37 return 0
38
39
30def puritine_symlink_exists(symlink):40def puritine_symlink_exists(symlink):
31 for file in os.listdir(puritine_hook_dir):41 for file in os.listdir(puritine_hook_dir):
32 if file == symlink:42 if file == symlink:
@@ -117,21 +127,59 @@
117 return puritine_symlink_farm_list127 return puritine_symlink_farm_list
118128
119129
120puritine_symlink_farm_list = {}130def favorite_libertine_scope():
121131 libertine_scope_value = 'scope://libertine-scope.ubuntu_libertine-scope'
122if not os.path.exists(puritine_hook_dir):132 click_scope_value = 'scope://clickscope'
123 os.makedirs(puritine_hook_dir)133 schema = 'com.canonical.Unity.Dash'
124134 schema_key = 'favorite-scopes'
125if (os.path.exists(puritine_symlink_farm_file) and135
126 os.path.getsize(puritine_symlink_farm_file) != 0):136 settings = Gio.Settings.new(schema)
127 with open(puritine_symlink_farm_file, 'r') as fd:137
128 puritine_symlink_farm_list = json.load(fd)138 favorites = settings.get_value(schema_key)
129139
130puritine_symlink_farm_list = find_new_or_updated_puritine_symlinks(puritine_symlink_farm_list)140 array = favorites.dup_strv()
131141
132if puritine_symlink_farm_list:142 if not libertine_scope_value in array:
133 puritine_symlink_farm_list = find_removed_puritine_symlinks(puritine_symlink_farm_list)143 array.insert(array.index(click_scope_value) + 1, libertine_scope_value)
134144 new_favorites = GLib.Variant.new_strv(array)
135with open(puritine_symlink_farm_file, 'w') as fd:145 settings.set_value(schema_key, new_favorites)
136 json.dump(puritine_symlink_farm_list, fd, sort_keys=True, indent=4)146 del new_favorites
137 fd.write('\n')147
148 del array
149 del favorites
150 del settings
151
152
153if __name__ == '__main__':
154 puritine_symlink_farm_list = {}
155
156 with open(os.path.join('/', 'run', 'user', str(os.getuid()), 'dbus-session'), 'r') as fd:
157 dbus_session_str = fd.read()
158
159 os.environ['DBUS_SESSION_BUS_ADDRESS'] = dbus_session_str.partition('DBUS_SESSION_BUS_ADDRESS=')[2].rstrip('\n')
160
161 if not os.path.exists(puritine_hook_dir):
162 os.makedirs(puritine_hook_dir)
163
164 if (os.path.exists(puritine_symlink_farm_file) and
165 os.path.getsize(puritine_symlink_farm_file) != 0):
166 with open(puritine_symlink_farm_file, 'r') as fd:
167 puritine_symlink_farm_list = json.load(fd)
168
169 count_at_start = symlink_farm_entries_count()
170
171 puritine_symlink_farm_list = find_new_or_updated_puritine_symlinks(puritine_symlink_farm_list)
172
173 if puritine_symlink_farm_list:
174 puritine_symlink_farm_list = find_removed_puritine_symlinks(puritine_symlink_farm_list)
175
176 count_at_finish = symlink_farm_entries_count()
177
178 with open(puritine_symlink_farm_file, 'w') as fd:
179 json.dump(puritine_symlink_farm_list, fd, sort_keys=True, indent=4)
180 fd.write('\n')
181
182 if count_at_start == 0 and count_at_finish > 0:
183 favorite_libertine_scope()
184
185 libertine.utils.refresh_libertine_scope()

Subscribers

People subscribed via source and target branches