140 lines
3.5 KiB
Bash
Executable file
140 lines
3.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# variables
|
|
GITHUB_REPO=alacritty/alacritty-theme
|
|
VERSION=${VERSION:-trunk} # or VERSION=trunk
|
|
|
|
BUILD=${BUILD:-3}
|
|
|
|
TAG=gwh
|
|
TMP=/tmp/$TAG
|
|
CWD=$(pwd)
|
|
|
|
PRGNAM=$(basename "$CWD")
|
|
PKG=$TMP/pkg-$PRGNAM
|
|
OUTPUT=${OUTPUT:-/tmp}
|
|
|
|
ARCH=${ARCH:-$(uname -m)}
|
|
|
|
REPOSITORY=${REPOSITORY:-/home/installs/SlackBuilds/_repositories/$PRGNAM}
|
|
PREFIX=${PREFIX:-/usr}
|
|
|
|
# nettoyage préalable
|
|
rm -fr "$PKG" "${TMP:?}/$PRGNAM"
|
|
|
|
mkdir -p "$PKG"
|
|
|
|
# mise en place
|
|
cd $TMP || exit 1
|
|
[ ! -e "$REPOSITORY" ] && git clone https://github.com/${GITHUB_REPO}.git "$REPOSITORY"
|
|
cd "$REPOSITORY" || exit 1
|
|
git pull --all
|
|
|
|
cp -R "$REPOSITORY" $TMP/
|
|
cd "$TMP/$PRGNAM" || exit 1
|
|
[ "$VERSION" == "latest" ] && VERSION=$(git tag --sort=-taggerdate | head -n1)
|
|
[ "$VERSION" == "" ] && VERSION=trunk
|
|
[ "$VERSION" == "trunk" ] && VERSION="git_r$(git rev-list --count HEAD)_$(git log -1 --format=%h)" || git checkout "$VERSION"
|
|
|
|
mkdir -p "$PKG$PREFIX/share/"
|
|
mv themes "$PKG$PREFIX/share/$PRGNAM"
|
|
|
|
# move doc/ to the appropriate location
|
|
mkdir -p "$PKG$PREFIX/doc/$PRGNAM"
|
|
mv ./* "$PKG$PREFIX/doc/$PRGNAM/"
|
|
|
|
|
|
mkdir -p "$PKG$PREFIX/bin"
|
|
cat <<EOF > "$PKG$PREFIX/bin/alacritty-theme-chooser.sh"
|
|
#!/bin/bash
|
|
|
|
ALACRITTY_CONFIG_DIR=~/.config/alacritty
|
|
ALACRITTY_THEMES_DIR=$PREFIX/share/$PRGNAM
|
|
|
|
if [ ! -e "\$ALACRITTY_CONFIG_DIR"/alacritty.toml ]; then
|
|
echo "Alacritty config file "\$ALACRITTY_CONFIG_DIR"/alacritty.toml is missing"
|
|
exit 1
|
|
fi
|
|
|
|
if ! \$(grep -q "theme.toml" "\$ALACRITTY_CONFIG_DIR"/alacritty.toml); then
|
|
echo "You need this line in your \$ALACRITTY_CONFIG_DIR/alacritty.toml :"
|
|
echo " import = [ \"~/.config/alacritty/theme.toml\" ]"
|
|
exit 1
|
|
fi
|
|
|
|
apply() {
|
|
THEME_NAME=\${1:-Cobalt2}
|
|
|
|
[ -e "\$ALACRITTY_THEMES_DIR/\$THEME_NAME.toml" ] || exit 1
|
|
ln -sf "\$ALACRITTY_THEMES_DIR/\$THEME_NAME.toml" "\$ALACRITTY_CONFIG_DIR"/theme.toml
|
|
touch "\$ALACRITTY_CONFIG_DIR"/alacritty.toml
|
|
}
|
|
|
|
list() {
|
|
find "\$ALACRITTY_THEMES_DIR" -name \*.toml | sort | rev | cut -d/ -f1 | rev | sed 's|.toml\$||'
|
|
}
|
|
|
|
menu() {
|
|
let i = 0
|
|
THEMES=() # define working array
|
|
while read -r line; do # process file by file
|
|
let i=\$i+1
|
|
THEMES+=(\$i "\$line")
|
|
done < <( list )
|
|
THEME=\$(dialog --title "List file of directory /home" --menu "Chose one" 24 80 17 "\${THEMES[@]}" 3>&2 2>&1 1>&3) # show dialog and store output
|
|
RESULT=\$?
|
|
clear
|
|
if [ \$RESULT -eq 0 ]; then # Exit with OK
|
|
apply "\${THEMES[\$((THEME * 2 -1))]}"
|
|
fi
|
|
}
|
|
|
|
case "\$1" in
|
|
apply)
|
|
apply "\$2"
|
|
;;
|
|
list)
|
|
list
|
|
;;
|
|
help|h|-h|--help)
|
|
echo "Usage: \$0 (menu | list | apply <theme>)"
|
|
;;
|
|
|
|
*)
|
|
menu
|
|
;;
|
|
esac
|
|
EOF
|
|
chmod +x "$PKG$PREFIX/bin/alacritty-theme-chooser.sh"
|
|
|
|
# correction
|
|
cd "$PKG" || exit 1
|
|
chown -R root:root ./*
|
|
|
|
# embaumement
|
|
mkdir -p "$PKG/install"
|
|
|
|
cat <<EOF > "$PKG/install/slack-desc"
|
|
# HOW TO EDIT THIS FILE:
|
|
# The "handy ruler" below makes it easier to edit a package description. Line
|
|
# up the first '|' above the ':' following the base package name, and the '|'
|
|
# on the right side marks the last column you can put a character in. You must
|
|
# make exactly 11 lines for the formatting to be correct. It's also
|
|
# customary to leave one space after the ':'.
|
|
|
|
|-----handy-ruler------------------------------------------------------|
|
|
$PRGNAM: $PRGNAM (Themes for Alacritty and a helper script)
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM: https://github.com/${GITHUB_REPO}
|
|
EOF
|
|
|
|
# empaquetage
|
|
/sbin/makepkg --linkadd y --chown n --prepend "$OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.txz"
|