improve shell scripts and update .gitignore

This commit is contained in:
zapashcanon 2019-04-24 01:55:05 +02:00
parent 33b1f37e37
commit eee6f2de31
No known key found for this signature in database
GPG key ID: 8981C3C62D1D28F1
8 changed files with 93 additions and 73 deletions

View file

@ -1,14 +1,15 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# Runs the Clang Formatter
# Return codes:
# - 1 there are files to be formatted
# - 0 everything looks fine
set -o errexit
set -o pipefail
set -o nounset
set -eu
FILES=`find src -type f -type f \( -iname "*.cpp" -o -iname "*.h" \)`
FILES=$(find src -type f -type f \( -iname "*.cpp" -o -iname "*.h" \))
clang-format -i $FILES && git diff --exit-code
for f in $FILES
do
clang-format -i "$f" && git diff --exit-code
done;

View file

@ -1,8 +1,8 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
set -ex
set -eux
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
brew update
brew install qt5 lmdb clang-format ninja libsodium cmark
brew upgrade boost cmake icu4c || true
@ -20,7 +20,7 @@ if [ "$TRAVIS_OS_NAME" == "osx" ]; then
fi
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
if [ -z "$QT_VERSION" ]; then
QT_VERSION="592"
@ -31,16 +31,15 @@ if [ "$TRAVIS_OS_NAME" == "linux" ]; then
sudo sh cmake-3.12.2-Linux-x86_64.sh --skip-license --prefix=/usr/local
mkdir -p build-libsodium
pushd build-libsodium
( cd build-libsodium
curl -L https://download.libsodium.org/libsodium/releases/libsodium-1.0.16.tar.gz -o libsodium-1.0.16.tar.gz
tar xfz libsodium-1.0.16.tar.gz
cd libsodium-1.0.16/
./configure && make && make check && sudo make install
popd
./configure && make && make check && sudo make install )
sudo add-apt-repository -y ppa:beineri/opt-qt${QT_VERSION}-trusty
sudo apt-get update -qq
sudo apt-get install -qq -y \
sudo apt update -qq
sudo apt install -qq -y \
qt${QT_PKG}base \
qt${QT_PKG}tools \
qt${QT_PKG}svg \

View file

@ -1,13 +1,17 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
set -ex
set -eux
APP=nheko
DIR=${APP}.AppDir
TAG=`git tag -l --points-at HEAD`
# unused but may be useful...
#TAG=$(git tag -l --points-at HEAD)
# Set up AppImage structure.
mkdir -p ${DIR}/usr/{bin,lib,share/pixmaps,share/applications}
for d in bin lib share/pixmaps share/applications
do
mkdir -p ${DIR}/usr/$d
done
# Copy resources.
cp build/nheko ${DIR}/usr/bin
@ -30,15 +34,22 @@ unset QTDIR
unset QT_PLUGIN_PATH
unset LD_LIBRARY_PATH
export ARCH=$(uname -m)
export LD_LIBRARY_PATH=$(pwd)/.deps/usr/lib/:$LD_LIBRARY_PATH
ARCH=$(uname -m)
export ARCH
LD_LIBRARY_PATH=$(pwd)/.deps/usr/lib/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
./linuxdeployqt*.AppImage ${DIR}/usr/share/applications/*.desktop -unsupported-allow-new-glibc -bundle-non-qt-libs
./linuxdeployqt*.AppImage ${DIR}/usr/share/applications/*.desktop -unsupported-allow-new-glibc -appimage
for res in ./linuxdeployqt*.AppImage
do
linuxdeployqt=$res
done
./"$linuxdeployqt" ${DIR}/usr/share/applications/*.desktop -unsupported-allow-new-glibc -bundle-non-qt-libs
./"$linuxdeployqt" ${DIR}/usr/share/applications/*.desktop -unsupported-allow-new-glibc -appimage
chmod +x nheko-*x86_64.AppImage
if [ ! -z $VERSION ]; then
if [ ! -z "$VERSION" ]; then
# commented out for now, as AppImage file appears to already contain the version.
#mv nheko-*x86_64.AppImage nheko-${VERSION}-x86_64.AppImage
echo "nheko-${VERSION}-x86_64.AppImage"

View file

@ -1,29 +1,30 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
set -ex
set -eux
TAG=`git tag -l --points-at HEAD`
# unused
#TAG=$(git tag -l --points-at HEAD)
# Add Qt binaries to path
PATH=/usr/local/opt/qt/bin/:${PATH}
pushd build
( cd build
# macdeployqt does not copy symlinks over.
# this specifically addresses icu4c issues but nothing else.
ICU_LIB="$(brew --prefix icu4c)/lib"
export ICU_LIB
mkdir -p nheko.app/Contents/Frameworks
find "${ICU_LIB}" -type l -name "*.dylib" -exec cp -a -n {} nheko.app/Contents/Frameworks/ \; || true
# macdeployqt does not copy symlinks over.
# this specifically addresses icu4c issues but nothing else.
export ICU_LIB="$(brew --prefix icu4c)/lib"
mkdir -p nheko.app/Contents/Frameworks
find ${ICU_LIB} -type l -name "*.dylib" -exec cp -a -n {} nheko.app/Contents/Frameworks/ \; || true
sudo macdeployqt nheko.app -dmg -always-overwrite
sudo macdeployqt nheko.app -dmg -always-overwrite
user=$(id -nu)
sudo chown ${user} nheko.dmg
mv nheko.dmg ..
popd
user=$(id -nu)
sudo chown "${user}" nheko.dmg
mv nheko.dmg ..
)
dmgbuild -s ./.ci/macos/settings.json "Nheko" nheko.dmg
if [ ! -z $VERSION ]; then
mv nheko.dmg nheko-${VERSION}.dmg
if [ ! -z "$VERSION" ]; then
mv nheko.dmg "nheko-${VERSION}.dmg"
fi

View file

@ -1,31 +1,32 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
set -ex
set -eux
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
export CC=${C_COMPILER}
export CXX=${CXX_COMPILER}
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/${C_COMPILER} 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/${CXX_COMPILER} 10
sudo update-alternatives --install /usr/bin/gcc gcc "/usr/bin/${C_COMPILER}" 10
sudo update-alternatives --install /usr/bin/g++ g++ "/usr/bin/${CXX_COMPILER}" 10
sudo update-alternatives --set gcc "/usr/bin/${C_COMPILER}"
sudo update-alternatives --set g++ "/usr/bin/${CXX_COMPILER}"
fi
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
source /opt/qt${QT_PKG}/bin/qt${QT_PKG}-env.sh || true;
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
# shellcheck disable=SC1090
. "/opt/qt${QT_PKG}/bin/qt${QT_PKG}-env.sh" || true;
fi
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
export CMAKE_PREFIX_PATH=/usr/local/opt/qt5
fi
# Build & install dependencies
cmake -GNinja -Hdeps -B.deps \
-DUSE_BUNDLED_BOOST=${USE_BUNDLED_BOOST} \
-DUSE_BUNDLED_CMARK=${USE_BUNDLED_CMARK} \
-DUSE_BUNDLED_JSON=${USE_BUNDLED_JSON}
-DUSE_BUNDLED_BOOST="${USE_BUNDLED_BOOST}" \
-DUSE_BUNDLED_CMARK="${USE_BUNDLED_CMARK}" \
-DUSE_BUNDLED_JSON="${USE_BUNDLED_JSON}"
cmake --build .deps
# Build nheko
@ -34,14 +35,14 @@ cmake -GNinja -H. -Bbuild \
-DCMAKE_INSTALL_PREFIX=.deps/usr
cmake --build build
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
make lint;
if [ $DEPLOYMENT == 1 ] && [ ! -z $VERSION ] ; then
if [ "$DEPLOYMENT" = 1 ] && [ ! -z "$VERSION" ] ; then
make macos-deploy;
fi
fi
if [ "$TRAVIS_OS_NAME" == "linux" ] && [ $DEPLOYMENT == 1 ] && [ ! -z $VERSION ]; then
if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$DEPLOYMENT" = 1 ] && [ ! -z "$VERSION" ]; then
make linux-deploy;
fi

3
.gitignore vendored
View file

@ -101,3 +101,6 @@ package.dir
# Dependencies
.third-party
.deps
# Archives
*.bz2

View file

@ -1,4 +1,6 @@
#!/bin/bash -e
#!/bin/sh
set -eu
PREFIX=$(basename "$(pwd -P)")
{

View file

@ -1,4 +1,6 @@
#!/bin/bash
#!/bin/sh
set -eu
#
# Manually generate icon set for MacOS.
@ -9,17 +11,17 @@ OUTPUT=nheko
mkdir ${OUTPUT}.iconset
sips -z 16 16 ${INPUT} --out ${OUTPUT}.iconset/icon_16x16.png
sips -z 32 32 ${INPUT} --out ${OUTPUT}.iconset/icon_16x16@2x.png
sips -z 32 32 ${INPUT} --out ${OUTPUT}.iconset/icon_32x32.png
sips -z 64 64 ${INPUT} --out ${OUTPUT}.iconset/icon_32x32@2x.png
sips -z 128 128 ${INPUT} --out ${OUTPUT}.iconset/icon_128x128.png
sips -z 256 256 ${INPUT} --out ${OUTPUT}.iconset/icon_128x128@2x.png
sips -z 256 256 ${INPUT} --out ${OUTPUT}.iconset/icon_256x256.png
sips -z 512 512 ${INPUT} --out ${OUTPUT}.iconset/icon_256x256@2x.png
sips -z 512 512 ${INPUT} --out ${OUTPUT}.iconset/icon_512x512.png
sips -z 16 16 "${INPUT}" --out ${OUTPUT}.iconset/icon_16x16.png
sips -z 32 32 "${INPUT}" --out ${OUTPUT}.iconset/icon_16x16@2x.png
sips -z 32 32 "${INPUT}" --out ${OUTPUT}.iconset/icon_32x32.png
sips -z 64 64 "${INPUT}" --out ${OUTPUT}.iconset/icon_32x32@2x.png
sips -z 128 128 "${INPUT}" --out ${OUTPUT}.iconset/icon_128x128.png
sips -z 256 256 "${INPUT}" --out ${OUTPUT}.iconset/icon_128x128@2x.png
sips -z 256 256 "${INPUT}" --out ${OUTPUT}.iconset/icon_256x256.png
sips -z 512 512 "${INPUT}" --out ${OUTPUT}.iconset/icon_256x256@2x.png
sips -z 512 512 "${INPUT}" --out ${OUTPUT}.iconset/icon_512x512.png
cp ${INPUT} ${OUTPUT}.iconset/icon_512x512@2x.png
cp "${INPUT}" ${OUTPUT}.iconset/icon_512x512@2x.png
iconutil -c icns ${OUTPUT}.iconset