colorschemes: make it easier to add colorschemes

This commit is contained in:
Boris Faure 2020-11-22 11:43:05 +01:00
parent aeffac28c6
commit d94bc64230
Signed by: borisfaure
GPG Key ID: 35C0410516166BE8
4 changed files with 59 additions and 8 deletions

View File

@ -0,0 +1,35 @@
#!/bin/sh
set -e
set -u
COMPRESS=1
EET=$1
shift
EET_FILE=$1
shift
INI=$1
shift
INI2DESC=$(dirname "$0")/ini2desc.py
GET_NAME=$(dirname "$0")/get_name.py
NAME=$($GET_NAME "$INI")
# generate desc on a temporary file
TMP_DESC=$(mktemp "$NAME-DESC-XXXXXX")
# trap to avoid creating orphan files
trap 'rm -f "$TMP_DESC"' INT TERM HUP EXIT
[ ! -w "$EET_FILE" ] && touch "$EET_FILE"
NAME=$($GET_NAME "$INI")
$INI2DESC "$INI" "$TMP_DESC"
$EET -e "$EET_FILE" "$NAME" "$TMP_DESC" "$COMPRESS"
rm "$TMP_DESC"
# file successfully written, so need to trap to rename temp file
trap - INT TERM HUP EXIT

View File

@ -2,13 +2,11 @@
set -e set -e
set -u set -u
COMPRESS=1
EET=$1 EET=$1
shift shift
OUTPUT=$1 OUTPUT=$1
shift shift
INI2DESC=$(dirname "$0")/ini2desc.py ADD_COLOR_SCHEME=$(dirname "$0")/add_color_scheme.sh
# work on a temporary file till every insertion worked # work on a temporary file till every insertion worked
TMP_EET=$(mktemp "$OUTPUT-XXXXXX") TMP_EET=$(mktemp "$OUTPUT-XXXXXX")
@ -18,10 +16,7 @@ trap 'rm -f "$TMP_EET"' INT TERM HUP EXIT
for INI in "$@" for INI in "$@"
do do
# use the name, without extension as key in eet # use the name, without extension as key in eet
KEY=$(basename "$INI" ".ini") $ADD_COLOR_SCHEME "$EET" "$TMP_EET" "$INI"
DESC="${KEY}.desc"
$INI2DESC "$INI" "$DESC"
$EET -e "$TMP_EET" "$KEY" "$DESC" "$COMPRESS"
done done
# atomic rename to the expected output file # atomic rename to the expected output file

21
data/colorschemes/get_name.py Executable file
View File

@ -0,0 +1,21 @@
#!/usr/bin/env python3
import argparse
import configparser
import sys
def main():
parser = argparse.ArgumentParser(description='Get color scheme name from an INI colorschemes description file.')
parser.add_argument('input_file',
type=argparse.FileType('r'),
help='INI File to convert')
args = parser.parse_args()
cfg = configparser.ConfigParser()
cfg.read_file(args.input_file)
print(cfg.get('Metadata', 'name'))
if __name__ == "__main__":
main()

View File

@ -19,7 +19,7 @@ custom_target('colorschemes.eet',
install:true, install:true,
install_dir: cs_install_dir, install_dir: cs_install_dir,
install_mode: 'rw-r--r--', install_mode: 'rw-r--r--',
depend_files: ['builder.sh', 'ini2desc.py'], depend_files: ['builder.sh', 'ini2desc.py', 'get_name.py', 'add_color_scheme.sh'],
command: cs_builder, command: cs_builder,
input: colorschemes_desc, input: colorschemes_desc,
output: 'colorschemes.eet') output: 'colorschemes.eet')