-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpackage.sh
More file actions
executable file
·151 lines (114 loc) · 7.06 KB
/
Copy pathpackage.sh
File metadata and controls
executable file
·151 lines (114 loc) · 7.06 KB
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#!/bin/bash
# package
# Builds packages for linux (deb, rpm, pacman, apk, zip), macos (pkg, zip) and win (zip)
#
# Usage: scripts/package
#
# Remember to run this script from the root of the project!
# DO NOT fail fast (this is because some packages, e.g. mac-pkg, may
# not build if you are not on the right OS)
#set -e
# ANSI colour codes so we can highlight text in the terminal
colour_red="\033[0;31m"
colour_green="\033[0;32m"
colour_blue="\033[0;34m"
colour_cyan="\033[0;36m"
# Escape codes for making text bold and returning it back to normal
bold="\e[1m"
normal="\e[0m"
# Compile a deb for linux
function compile_linux_deb {
echo -e "${colour_blue}package: compiling linux_deb${normal}"
fpm -s dir -t deb -p dist/packages/dabbu-cli-linux-deb-amd64.deb --name dabbu-cli --license gpl3 --version `cat version` --description "A CLI that enables you to access any of your personal information (Gmail, Google Drive, OneDrive, your hard drive, ...) as simple files and folders" --url "https://dabbu-knowledge-platform.github.io" --maintainer "Vedant K (gamemaker1) <dabbuknowledgeplatform@gmail.com>" ./dist/binaries/cli-linux=/usr/bin/dabbu-cli ./assets/packaging/dabbu-cli.1=/usr/share/man/man1/dabbu-cli.1 ./assets/logo.png=/usr/share/icons/dabbu-cli.png ./assets/packaging/dabbu-cli.desktop=/usr/share/applications/dabbu-cli.desktop
}
# Compile a rpm for linux
function compile_linux_rpm {
echo -e "${colour_blue}package: compiling linux_rpm${normal}"
fpm -s dir -t rpm -p dist/packages/dabbu-cli-linux-rpm-amd64.rpm --name dabbu-cli --license gpl3 --version `cat version` --description "A CLI that enables you to access any of your personal information (Gmail, Google Drive, OneDrive, your hard drive, ...) as simple files and folders" --url "https://dabbu-knowledge-platform.github.io" --maintainer "Vedant K (gamemaker1) <dabbuknowledgeplatform@gmail.com>" ./dist/binaries/cli-linux=/usr/bin/dabbu-cli ./assets/packaging/dabbu-cli.1=/usr/share/man/man1/dabbu-cli.1 ./assets/logo.png=/usr/share/icons/dabbu-cli.png ./assets/packaging/dabbu-cli.desktop=/usr/share/applications/dabbu-cli.desktop
}
# Compile a pacman package for linux
function compile_linux_pacman {
echo -e "${colour_blue}package: compiling linux_pacman${normal}"
fpm -s dir -t pacman -p dist/packages/dabbu-cli-linux-arch-amd64.tar.gz --name dabbu-cli --license gpl3 --version `cat version` --description "A CLI that enables you to access any of your personal information (Gmail, Google Drive, OneDrive, your hard drive, ...) as simple files and folders" --url "https://dabbu-knowledge-platform.github.io" --maintainer "Vedant K (gamemaker1) <dabbuknowledgeplatform@gmail.com>" ./dist/binaries/cli-linux=/usr/bin/dabbu-cli ./assets/packaging/dabbu-cli.1=/usr/share/man/man1/dabbu-cli.1 ./assets/logo.png=/usr/share/icons/dabbu-cli.png ./assets/packaging/dabbu-cli.desktop=/usr/share/applications/dabbu-cli.desktop
}
# Compile a apk package for linux
function compile_linux_apk {
echo -e "${colour_blue}package: compiling linux_apk${normal}"
fpm -s dir -t apk -p dist/packages/dabbu-cli-linux-alpine-amd64.apk --name dabbu-cli --license gpl3 --version `cat version` --description "A CLI that enables you to access any of your personal information (Gmail, Google Drive, OneDrive, your hard drive, ...) as simple files and folders" --url "https://dabbu-knowledge-platform.github.io" --maintainer "Vedant K (gamemaker1) <dabbuknowledgeplatform@gmail.com>" ./dist/binaries/cli-alpine=/usr/bin/dabbu-cli ./assets/packaging/dabbu-cli.1=/usr/share/man/man1/dabbu-cli.1 ./assets/logo.png=/usr/share/icons/dabbu-cli.png ./assets/packaging/dabbu-cli.desktop=/usr/share/applications/dabbu-cli.desktop
}
# Compile a zip for linux
function compile_linux_zip {
echo -e "${colour_blue}package: compiling linux_zip${normal}"
mkdir -p ./dist/generated/linux-zip/
cp ./readme.md ./dist/generated/linux-zip/
cp ./license.md ./dist/generated/linux-zip/
cp ./version ./dist/generated/linux-zip/
cp ./assets/logo.png ./dist/generated/linux-zip/
cp ./assets/packaging/dabbu-cli.1 ./dist/generated/linux-zip/
cp ./assets/packaging/dabbu-cli.desktop ./dist/generated/linux-zip
cp ./dist/binaries/cli-linux ./dist/generated/linux-zip/dabbu-cli
cd ./dist/generated/linux-zip/
zip -9 ../../packages/dabbu-cli-linux-generic-amd64.zip ./*
cd ../../../
}
# Compile a osxpkg package for linux
function compile_macos_pkg {
echo -e "${colour_blue}package: compiling macos_pkg${normal}"
fpm -s dir -t osxpkg -p dist/packages/dabbu-cli-macos-pkg-amd64.pkg --name dabbu-cli --license gpl3 --version `cat version` --description "A CLI that enables you to access any of your personal information (Gmail, Google Drive, OneDrive, your hard drive, ...) as simple files and folders" --url "https://dabbu-knowledge-platform.github.io" --maintainer "Vedant K (gamemaker1) <dabbuknowledgeplatform@gmail.com>" ./dist/binaries/cli-macos=/usr/bin/dabbu-cli ./assets/packaging/dabbu-cli.1=/usr/share/man/man1/dabbu-cli.1 ./assets/logo.png=/usr/share/icons/dabbu-cli.png ./assets/packaging/dabbu-cli.desktop=/usr/share/applications/dabbu-cli.desktop
}
# Compile a zip for macos
function compile_macos_zip {
echo -e "${colour_blue}package: compiling macos_zip${normal}"
mkdir -p ./dist/generated/macos-zip/
cp ./readme.md ./dist/generated/macos-zip/
cp ./license.md ./dist/generated/macos-zip/
cp ./version ./dist/generated/macos-zip/
cp ./assets/logo.png ./dist/generated/macos-zip/
cp ./assets/packaging/dabbu-cli.1 ./dist/generated/macos-zip/
cp ./assets/packaging/dabbu-cli.desktop ./dist/generated/macos-zip
cp ./dist/binaries/cli-macos ./dist/generated/macos-zip/dabbu-cli
cd ./dist/generated/macos-zip/
zip -9 ../../packages/dabbu-cli-macos-generic-amd64.zip ./*
cd ../../../
}
# Compile a zip for win
function compile_win_zip {
echo -e "${colour_blue}package: compiling win_zip${normal}"
mkdir -p ./dist/generated/win-zip/
cp ./readme.md ./dist/generated/win-zip/
cp ./license.md ./dist/generated/win-zip/
cp ./version ./dist/generated/win-zip/
cp ./assets/logo.png ./dist/generated/win-zip/
cp ./assets/packaging/dabbu-cli.1 ./dist/generated/win-zip/dabbu-cli.manualpage
cp ./assets/packaging/dabbu-cli.desktop ./dist/generated/win-zip/
cp ./dist/binaries/cli-win.exe ./dist/generated/win-zip/dabbu-cli.exe
cd ./dist/generated/win-zip/
zip -9 ../../packages/dabbu-cli-windows-generic-amd64.zip ./*
cd ../../../
}
# Compile for all machines
function cross_compile {
# First create the output directory
mkdir -p ./dist/packages/
mkdir -p ./dist/generated/
# Then compile
compile_linux_deb
compile_linux_rpm
compile_linux_pacman
compile_linux_apk
compile_linux_zip
compile_macos_pkg
compile_macos_zip
compile_win_zip
}
# First build the CLI
yarn build
cp ./package.json ./dist/package.json
echo -e "${bold}${colour_blue}job: generate-binaries; status: running${normal}"
# Then compile the JS code into binaries
yarn pkg .
echo -e "${bold}${colour_green}job: generate-binaries; status: done${normal}"
echo -e "${bold}${colour_blue}job: package; status: running${normal}"
# Then generate packages from the binaries
cross_compile
echo -e "${bold}${colour_green}job: package; status: done${normal}"