]> git.lizzy.rs Git - micro.git/blob - tools/build-packages.sh
Merge pull request #965 from tommyshem/ada
[micro.git] / tools / build-packages.sh
1 #Builds all packages we support
2
3 version=$1
4 if [ "$1" == "" ] 
5    then
6      version=$(go run build-version.go | tr "-" ".")
7 fi
8 echo "Building packages for Version '$version'"
9 echo "Compiling."
10 ./compile-linux.sh $version
11
12 #Build the debs
13 function getControl() {
14 echo Section: editors
15 echo Package: micro
16 echo Version: $2
17 echo Priority: extra
18 echo Maintainer: \"Zachary Yedidia\" \<zyedidia@gmail.com\>
19 echo Standards-Version: 3.9.8
20 echo Homepage: https://micro-editor.github.io/
21 echo Architecture: $1
22 echo "Description: A modern and intuitive terminal-based text editor"
23 echo " This package contains a modern alternative to other terminal-based"
24 echo " Editors. It is easy to Use, highly customizable via themes and plugins"
25 echo " and it supports mouse input"
26 }
27
28 function installFiles() {
29   TO="$1/$2/usr/share/doc/micro/"
30   mkdir -p $TO
31   mkdir -p "$1/$2/usr/share/man/man1/"
32   mkdir -p "$1/$2/usr/share/applications/"
33   mkdir -p "$1/$2/usr/share/icons/"
34   cp ../LICENSE $TO
35   cp ../LICENSE-THIRD-PARTY $TO
36   cp ../README.md $TO
37   gzip -c ../assets/packaging/micro.1 > $1/$2/usr/share/man/man1/micro.1.gz
38   cp ../assets/packaging/micro.desktop $1/$2/usr/share/applications/
39   cp ../assets/logo.svg $1/$2/usr/share/icons/micro.svg
40 }
41 echo "Starting deb build process"
42 PKGPATH="../packages/deb"
43 rm -fr $PKGPATH
44 mkdir -p $PKGPATH/amd64/DEBIAN/
45 mkdir -p $PKGPATH/i386/DEBIAN/
46 mkdir -p $PKGPATH/arm/DEBIAN/
47
48 getControl "amd64" "$version" > $PKGPATH/amd64/DEBIAN/control
49 tar -xzf "../binaries/micro-$version-linux64.tar.gz" "micro-$version/micro"
50 mkdir -p $PKGPATH/amd64/usr/local/bin/
51 mv "micro-$version/micro" "$PKGPATH/amd64/usr/local/bin/"
52   
53 getControl "i386" "$version" > $PKGPATH/i386/DEBIAN/control
54 tar -xzf "../binaries/micro-$version-linux32.tar.gz" "micro-$version/micro"
55 mkdir -p $PKGPATH/i386/usr/local/bin/
56 mv "micro-$version/micro" "$PKGPATH/i386/usr/local/bin/"
57         
58 getControl "arm" "$version" > $PKGPATH/arm/DEBIAN/control
59 tar -xzf "../binaries/micro-$version-linux-arm.tar.gz" "micro-$version/micro"
60 mkdir -p $PKGPATH/arm/usr/local/bin
61 mv "micro-$version/micro" "$PKGPATH/arm/usr/local/bin"
62         
63 rm -rf "micro-$version"
64         
65 installFiles $PKGPATH "amd64"
66 installFiles $PKGPATH "i386"
67 installFiles $PKGPATH "arm"
68
69 echo "Building debs"        
70 dpkg -b "$PKGPATH/amd64/" "../packages/micro-$version-amd64.deb"
71 dpkg -b "$PKGPATH/i386/" "../packages/micro-$version-i386.deb"
72 dpkg -b "$PKGPATH/arm/" "../packages/micro-$version-arm.deb"
73
74 #Build the RPMS
75 echo "Starting RPM build process"
76 PKGPATH="../packages/rpm"
77
78 rm -rf $PKGPATH
79 mkdir -p $PKGPATH
80
81 versionsplit=$(echo $version | tr "." "\n")
82 version=""
83 i=0
84 for string in $versionsplit
85 do
86         if (("$i" < "2")) 
87         then
88                 version=$(echo $version$string.)
89         fi
90         if (("$i" == "2")) 
91         then
92                 version=$(echo $version$string)
93         fi
94         if (("$i" == "3")) 
95         then
96                 dev=$(echo $dev$string.)
97         fi
98         if (("$i"=="4"))
99         then
100                 dev=$(echo $dev$string)
101         fi
102         let "i+=1"
103 done
104
105 #Generate the spec file from template
106 cat micro.spec | sed s/"dev.126"/"$dev"/ | sed s/"Version: 1.1.5"/"Version: $version"/ | sed s/"-Version: 1.1.5"/"-Version: $version"/ | sed s/"DATE"/"$(date +%F\ %H:%m)"/ | sed s/"rdieter1@localhost.localdomain"/"$USER@$HOSTNAME"/ | tee > $PKGPATH/micro.spec
107
108 cd $PKGPATH
109
110 echo "Building the RPM packages"
111 rpmbuild -bs micro.spec --define "_sourcedir $(pwd)/../../binaries/" --define "_rpmdir $(pwd)/../"
112 rpmbuild -bb micro.spec --define "_sourcedir $(pwd)/../../binaries/" --define "_rpmdir $(pwd)/../" --target x86_64
113 rpmbuild -bb micro.spec --define "_sourcedir $(pwd)/../../binaries/" --define "_rpmdir $(pwd)/../" --target i686
114 rpmbuild -bb micro.spec --define "_sourcedir $(pwd)/../../binaries/" --define "_rpmdir $(pwd)/../" --target armv7l
115
116 cd ..
117
118 mv x86_64/micro-$version-1.$dev.x86_64.rpm ./
119 mv i686/micro-$version-1.$dev.i686.rpm ./
120 mv armv7l/micro-$version-1.$dev.armv7l.rpm ./
121
122 echo "Cleaning up."
123 rm -rf x86_64
124 rm -rf i686
125 rm -rf armv7l
126 rm -rf rpm
127 rm -rf deb
128
129 echo "Your packages should be ready now. Thank you, have a nice day. :)"