From f0823c445a01320ec471fe8c9163ab16b1cb3e1e Mon Sep 17 00:00:00 2001 From: Ruben Pollan Date: Thu, 17 Jan 2019 17:01:20 +0100 Subject: [pkg] snap: don't use subprocess.run on the post-install hook - Resolves: #53 --- snap/hooks/install | 9 ++++++--- snap/pre/pack_installers | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/snap/hooks/install b/snap/hooks/install index fa05c6c..98469fe 100755 --- a/snap/hooks/install +++ b/snap/hooks/install @@ -5,6 +5,7 @@ # It is generated automatically # by the script at "snap/pre/pack_installers" import subprocess +import os from base64 import decodestring as decode POLKIT = b'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHBvbGljeWNv\nbmZpZyBQVUJMSUMKICItLy9mcmVlZGVza3RvcC8vRFREIFBvbGljeUtpdCBQb2xpY3kgQ29uZmln\ndXJhdGlvbiAxLjAvL0VOIgogImh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3N0YW5kYXJkcy9Q\nb2xpY3lLaXQvMS9wb2xpY3ljb25maWcuZHRkIj4KPHBvbGljeWNvbmZpZz4KCiAgPHZlbmRvcj5M\nRUFQIFByb2plY3Q8L3ZlbmRvcj4KICA8dmVuZG9yX3VybD5odHRwOi8vbGVhcC5zZS88L3ZlbmRv\ncl91cmw+CgogIDxhY3Rpb24gaWQ9InNlLmxlYXAuYml0bWFzay5yaXNldXB2cG4ucG9saWN5Ij4K\nICAgIDxkZXNjcmlwdGlvbj5SdW5zIGJpdG1hc2sgaGVscGVyIHRvIGxhdW5jaCBmaXJld2FsbCBh\nbmQgb3BlbnZwbiAoUmlzZXVwVlBOKTwvZGVzY3JpcHRpb24+CiAgICA8ZGVzY3JpcHRpb24geG1s\nOmxhbmc9ImVzIj5FamVjdXRhIGVsIGFzaXN0ZW50ZSBkZSBiaXRtYXNrIHBhcmEgbGFuemFyIGVs\nIGZpcmV3YWxsIHkgb3BlbnZwbiAoUmlzZXVwVlBOKTwvZGVzY3JpcHRpb24+CiAgICA8bWVzc2Fn\nZT5SaXNldXBWUE4gbmVlZHMgdGhhdCB5b3UgYXV0aGVudGljYXRlIHRvIHN0YXJ0PC9tZXNzYWdl\nPgogICAgPG1lc3NhZ2UgeG1sOmxhbmc9ImVzIj5SaXNldXBWUE4gbmVjZXNpdGEgYXV0b3JpemFj\naW9uIHBhcmEgY29tZW56YXI8L21lc3NhZ2U+CiAgICA8aWNvbl9uYW1lPnBhY2thZ2UteC1nZW5l\ncmljPC9pY29uX25hbWU+IAogICAgPGRlZmF1bHRzPgogICAgICA8YWxsb3dfYW55PnllczwvYWxs\nb3dfYW55PgogICAgICA8YWxsb3dfaW5hY3RpdmU+eWVzPC9hbGxvd19pbmFjdGl2ZT4KICAgICAg\nPGFsbG93X2FjdGl2ZT55ZXM8L2FsbG93X2FjdGl2ZT4KICAgIDwvZGVmYXVsdHM+CiAgICA8YW5u\nb3RhdGUga2V5PSJvcmcuZnJlZWRlc2t0b3AucG9saWN5a2l0LmV4ZWMucGF0aCI+L3NuYXAvYmlu\nL3Jpc2V1cC12cG4uYml0bWFzay1yb290PC9hbm5vdGF0ZT4KICA8L2FjdGlvbj4KPC9wb2xpY3lj\nb25maWc+Cg==\n' @@ -18,6 +19,8 @@ with open('/etc/os-release') as f: release = f.read() # this is a workaround for the fact that debian does not place snap desktop entries in a system+wide path. if 'ID=debian' in release: - cmd = 'ln -s /snap/riseup-vpn/current/snap/gui/riseup-vpn.desktop /usr/share/applications/' - subprocess.run(cmd.split(' ')) - subprocess.run(['update-desktop-database']) + desktop_path = "/usr/share/applications/riseup-vpn.desktop" + if os.path.exists(desktop_path): + os.remove(desktop_path) + os.symlink("/snap/riseup-vpn/current/snap/gui/riseup-vpn.desktop", desktop_path) + subprocess.call(['update-desktop-database']) diff --git a/snap/pre/pack_installers b/snap/pre/pack_installers index a893574..827d16e 100755 --- a/snap/pre/pack_installers +++ b/snap/pre/pack_installers @@ -34,6 +34,7 @@ with open(INSTALL, 'w') as install: install.write('# It is generated automatically\n') install.write('# by the script at "snap/pre/pack_installers"\n') install.write('import subprocess\n') + install.write('import os\n') install.write('from base64 import decodestring as decode\n') install.write(""" POLKIT = {polkit} @@ -47,9 +48,11 @@ with open('/etc/os-release') as f: release = f.read() # this is a workaround for the fact that debian does not place snap desktop entries in a system+wide path. if 'ID=debian' in release: - cmd = 'ln -s /snap/{app_name}/current/snap/gui/{app_name}.desktop /usr/share/applications/' - subprocess.run(cmd.split(' ')) - subprocess.run(['update-desktop-database']) + desktop_path = "/usr/share/applications/{app_name}.desktop" + if os.path.exists(desktop_path): + os.remove(desktop_path) + os.symlink("/snap/{app_name}/current/snap/gui/{app_name}.desktop", desktop_path) + subprocess.call(['update-desktop-database']) """.format( polkit=b64_polkit, polkit_file=POLKIT_FILE, -- cgit v1.2.3