aboutsummaryrefslogtreecommitdiff
path: root/vendor/maunium.net/go/tcell/terminfo/mkdatabase.sh
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/maunium.net/go/tcell/terminfo/mkdatabase.sh')
-rwxr-xr-xvendor/maunium.net/go/tcell/terminfo/mkdatabase.sh189
1 files changed, 0 insertions, 189 deletions
diff --git a/vendor/maunium.net/go/tcell/terminfo/mkdatabase.sh b/vendor/maunium.net/go/tcell/terminfo/mkdatabase.sh
deleted file mode 100755
index fd968bd..0000000
--- a/vendor/maunium.net/go/tcell/terminfo/mkdatabase.sh
+++ /dev/null
@@ -1,189 +0,0 @@
-#!/bin/bash
-
-# Copyright 2017 The TCell Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use file except in compliance with the License.
-# You may obtain a copy of the license at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#
-# When called with no arguments, this shell script builds the Go database,
-# which is somewhat minimal for size reasons (it only contains the most
-# commonly used entries), and then builds the complete JSON database.
-#
-# To limit the action to only building one or more terminals, specify them
-# on the command line:
-#
-# ./mkdatabase xterm
-#
-# The script will also find and update or add any terminal "aliases".
-# It does not remove any old entries.
-#
-# To add to the set of terminals that we compile into the Go database,
-# add their names to the models.txt file.
-#
-
-# This script is not very efficient, but there isn't really a better way
-# without writing code to decode the terminfo binary format directly.
-# Its not worth worrying about.
-
-# This script also requires bash, although ksh93 should work as well, because
-# we use arrays, which are not specified in POSIX.
-
-export LANG=C
-export LC_CTYPE=C
-
-progress()
-{
- typeset -i num=$1
- typeset -i tot=$2
- typeset -i x
- typeset back
- typeset s
-
- if (( tot < 1 ))
- then
- s=$(printf "[ %d ]" $num)
- back="\b\b\b\b\b"
- x=$num
- while (( x >= 10 ))
- do
- back="${back}\b"
- x=$(( x / 10 ))
- done
-
- else
- x=$(( num * 100 / tot ))
- s=$(printf "<%3d%%>" $x)
- back="\b\b\b\b\b\b"
- fi
- printf "%s${back}" "$s"
-}
-
-ord()
-{
- printf "%02x" "'$1'"
-}
-
-goterms=( $(cat models.txt) )
-args=( $* )
-if (( ${#args[@]} == 0 ))
-then
- args=( $(toe -a | cut -f1) )
-fi
-
-printf "Scanning terminal definitions: "
-i=0
-aliases=()
-models=()
-for term in ${args[@]}
-do
- case "${term}" in
- *-truecolor)
- line="${term}|24-bit color"
- ;;
- *)
- line=$(infocmp $term | head -2 | tail -1)
- if [[ -z "$line" ]]
- then
- echo "Cannot find terminfo for $term"
- exit 1
- fi
- # take off the trailing comma
- line=${line%,}
- esac
-
- # grab primary name
- term=${line%%|*}
- all+=( ${term} )
-
- # should this be in our go terminals?
- for model in ${goterms[@]}
- do
- if [[ "${model}" == "${term}" ]]
- then
- models+=( ${term} )
- fi
- done
-
- # chop off primary name
- line=${line#${term}}
- line=${line#|}
- # chop off description
- line=${line%|*}
- while [[ "$line" != "" ]]
- do
- a=${line%%|*}
- aliases+=( ${a}=${term} )
- line=${line#$a}
- line=${line#|}
- done
- i=$(( i + 1 ))
- progress $i ${#args[@]}
-done
-echo
-# make sure we have mkinfo
-printf "Building mkinfo: "
-go build mkinfo.go
-echo "done."
-
-# Build all the go database files for the "interesting" terminals".
-printf "Building Go database: "
-i=0
-for model in ${models[@]}
-do
- safe=$(echo $model | tr - _)
- file=term_${safe}.go
- ./mkinfo -go $file $model
- go fmt ${file} >/dev/null
- i=$(( i + 1 ))
- progress $i ${#models[@]}
-done
-echo
-
-printf "Building JSON database: "
-
-# The JSON files are located for each terminal in a file with the
-# terminal name, in the following fashion "database/x/xterm.json
-
-i=0
-for model in ${all[@]}
-do
- letter=$(ord ${model:0:1})
- dir=database/${letter}
- file=${dir}/${model}.gz
- mkdir -p ${dir}
- ./mkinfo -nofatal -quiet -gzip -json ${file} ${model}
- i=$(( i + 1 ))
- progress $i ${#all[@]}
-done
-echo
-
-printf "Building JSON aliases: "
-i=0
-for model in ${aliases[@]}
-do
- canon=${model#*=}
- model=${model%=*}
- letter=$(ord ${model:0:1})
- cletter=$(ord ${canon:0:1})
- dir=database/${letter}
- file=${dir}/${model}
- if [[ -f database/${cletter}/${canon}.gz ]]
- then
- [[ -d ${dir} ]] || mkdir -p ${dir}
- # Generally speaking the aliases are better uncompressed
- ./mkinfo -nofatal -quiet -json ${file} ${model}
- fi
- i=$(( i + 1 ))
- progress $i ${#aliases[@]}
-done
-echo