This file is indexed.

/usr/bin/blueman-browse is in blueman 1.23-0ubuntu2.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/usr/bin/python
# Copyright (C) 2008 Valmantas Paliksa <walmis at balticum-tv dot lt>
# Copyright (C) 2008 Tadas Dailyda <tadas at dailyda dot com>
#
# Licensed under the GNU General Public License Version 3
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
# 

import os, sys

#support running uninstalled
_dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
if os.path.exists(os.path.join(_dirname,"ChangeLog")):
	sys.path.insert(0, _dirname)
	
import gtk
import gobject
from optparse import OptionParser
import gettext
import time

from blueman.bluez.Manager import Manager
from blueman.gui.DeviceSelectorDialog import DeviceSelectorDialog
from blueman.Functions import *
from blueman.Constants import *
from blueman.main.Config import Config

class Browse:
	def __init__(self):
		setup_icon_path()
	
		usage = "Usage: %prog [options]"
		parser = OptionParser(usage)
		parser.add_option("-d", "--device", dest="device",
				action="store", help=_("Browse this device"), metavar="ADDRESS")
	
		(options, args) = parser.parse_args()
		self.options = options
		self.args = args
		
		if options.device == None:
			dev = self.select_device()
			if not dev:
				exit()

			addr = dev.Address
			
		else:
			addr = options.device
		addr = addr.strip(" ")
		conf = Config("transfer")
		if conf.props.browse_command == None:
			conf.props.browse_command = DEF_BROWSE_COMMAND
			if "nautilus" in DEF_BROWSE_COMMAND:
				if not have("nautilus"):
					conf.props.browse_command = "thunar obex://[%d]"
		
		cmd = conf.props.browse_command.replace("%d", addr)
		args = cmd.split(" ")
		try:	
			spawn(args, True)
		except Exception, e:
			dprint(e)
			d = gtk.MessageDialog( None, buttons=gtk.BUTTONS_OK, type=gtk.MESSAGE_ERROR)
			d.props.text = _("Failed to launch \"%s\"") % args[0]
			d.props.secondary_text = "%s\n\n"  % e + _("You can enter an alternate browser in service settings")
			d.run()
			d.destroy()
		
	def select_device(self):
		d = DeviceSelectorDialog()
		resp = d.run()
		d.destroy()
		if resp == gtk.RESPONSE_ACCEPT:
			sel = d.GetSelection()
			if sel:
				return sel[1]
			else:
				return None
		else:
			return None


		
		
		
Browse()