-
Notifications
You must be signed in to change notification settings - Fork 3
/
snapcraft.yaml
91 lines (87 loc) · 2.98 KB
/
snapcraft.yaml
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
name: brackets
adopt-info: brackets
summary: Brackets is a modern code editor for HTML, CSS and JavaScript.
description: |
Brackets is an open-source editor for web design and development
built on top of web technologies such as HTML, CSS and JavaScript.
The project was created and is maintained by Adobe, and is released
under an MIT License.
base: core
grade: stable
confinement: classic
architectures:
- build-on: amd64
- build-on: i386
parts:
bsi-trigger: # A non-built part, only used to trigger builds in build.snapcraft.io on upstream changes
plugin: nil
source: https://github.com/adobe/brackets.git
gnome:
plugin: nil
build-packages:
- software-properties-common
override-pull: |
add-apt-repository -y ppa:ubuntu-desktop/gnome-3-26
apt -y update
apt -y upgrade
brackets:
after:
- gnome
plugin: nil
override-build: |
snapcraftctl build
ARCHITECTURE=$(dpkg --print-architecture)
if [ "${ARCHITECTURE}" = "amd64" ]; then
FILTER="64-bit.deb"
elif [ "${ARCHITECTURE}" = "i386" ]; then
FILTER="32-bit.deb"
else
echo "ERROR! Brackets only produces debs for amd64 and i386. Failing the build here."
exit 1
fi
# Get the latest releases json
echo "Get GitHub releases..."
wget --quiet https://api.github.com/repos/adobe/brackets/releases/latest -O releases.json
# Get the version from the tag_name and the download URL.
VERSION=$(jq . releases.json | grep tag_name | cut -d'"' -f4 | sed s'/release-//')
DEB_URL=$(cat releases.json | jq -r ".assets[] | select(.name | test(\"${FILTER}\")) | .browser_download_url")
DEB=$(basename "${DEB_URL}")
echo "Downloading ${DEB_URL}..."
wget --quiet "${DEB_URL}" -O "${SNAPCRAFT_PART_INSTALL}/${DEB}"
echo "Unpacking ${DEB}..."
dpkg -x "${SNAPCRAFT_PART_INSTALL}/${DEB}" ${SNAPCRAFT_PART_INSTALL}
rm -f releases.json 2>/dev/null
rm -f "${SNAPCRAFT_PART_INSTALL}/${DEB}" 2>/dev/null
echo $VERSION > $SNAPCRAFT_STAGE/version
# Correct path to icon.
sed -i 's|Icon=brackets|Icon=/usr/share/icons/hicolor/scalable/apps/brackets\.svg|g' ${SNAPCRAFT_PART_INSTALL}/opt/brackets/brackets.desktop
# Delete usr/bin/brackets, it's a broken symlink pointing outside the snap.
rm -f ${SNAPCRAFT_PART_INSTALL}/usr/bin/brackets
chmod -s ${SNAPCRAFT_PART_INSTALL}/opt/brackets/chrome-sandbox
snapcraftctl set-version "$(echo $VERSION)"
build-packages:
- dpkg
- jq
- sed
- wget
stage-packages:
- libasound2
- libgconf2-4
- libgtk2.0-0
- libnotify4
- libnspr4
- libnss3
- libpcre3
- libpulse0
- libxss1
- libxtst6
electron-launch:
plugin: dump
source: files/
override-build: |
snapcraftctl build
chmod +x bin/electron-launch
apps:
brackets:
command: bin/electron-launch ${SNAP}/opt/brackets/Brackets
desktop: opt/brackets/brackets.desktop