summaryrefslogtreecommitdiff
path: root/scripts/linux-setup.sh
blob: 2f5bd489fe3867e8126819be29374c42cf439f92 (plain)
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
#!/bin/bash

# Note is setup script currently does three things:
#
# 1. It creates a binaryninja.desktop file in ~/.local/share/applications and
#    copies it to the desktop
# 2. It creates a .xml file to add a mime type for .bndb files.
# 3. It adds a binaryninja: url handler.


APP="binaryninja"
FILECOMMENT="Binary Ninja Analysis Database"
APPCOMMENT="Binary Ninja: A Reverse Engineering Platform"
BNPATH=$(dirname $(readlink -f "$0"))
EXEC="${BNPATH}/binaryninja"
PNG="${BNPATH}/docs/images/logo.png"
EXT="bndb"
SHARE=/usr/share #For system
SUDO="sudo"      #For system
SHARE=~/.local/share #For user only
SUDO=""              #For user only
DESKTOPFILE=$SHARE/applications/${APP}.desktop
MIMEFILE=$SHARE/mime/packages/application-x-$APP.xml
IMAGEPATH=$SHARE/pixmaps

createdesktopfile()
{
	mkdir -p $SHARE/{mime/packages,applications,pixmaps}
	echo Creating .desktop file

	# Desktop File
	echo "[Desktop Entry]
Name=$APP
Exec=$EXEC %u
MimeType=application/x-$APP;x-scheme-handler/$APP;
Icon=$PNG
Terminal=false
Type=Application
Categories=Utility;
Comment=$APPCOMMENT
" | $SUDO tee $DESKTOPFILE >/dev/null
	$SUDO chmod +x $DESKTOPFILE

	$SUDO update-desktop-database $SHARE/applications
}

createmime()
{
	echo Creating MIME settings
	if [ ! -f $DESKTOPFILE ]
	then
		createdesktopfile
	fi

	echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<mime-info xmlns=\"http://www.freedesktop.org/standards/shared-mime-info\">
	<mime-type type=\"application/x-$APP\">
		<comment>$FILECOMMENT</comment>
		<icon name=\"application-x-$APP\"/>
		<magic-deleteall/>
		<glob pattern=\"*.$EXT\"/>
		<sub-class-of type=\"application/x-sqlite3\" />
	</mime-type>
</mime-info>"| $SUDO tee $MIMEFILE >/dev/null

	#echo Copying icon
	#$SUDO cp $PNG $IMAGEPATH/$APP.png
	$SUDO cp $PNG $IMAGEPATH/application-x-$APP.png

	$SUDO update-mime-database $SHARE/mime
}

addtodesktop()
{
	cp $DESKTOPFILE ~/Desktop
}

#TODO: Make these optional...
createdesktopfile
createmime
addtodesktop