summaryrefslogtreecommitdiff
path: root/source/x/noto-cjk-fonts-ttf/package-source.sh
blob: 0f842f182013e3a1be4989c62abd42424401740a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/bash

# Copyright 2020  Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# This pulls down the full noto-cjk archive from github and then packages the
# two font files that we want as well as the documentation into a "source"
# tarball. Note that since 100% of the contents of this are placed into the
# package .txz, there's not really any reason to keep the source archive after
# packaging it.

cd $(dirname $0) ; CWD=$(pwd)

VERSION=${VERSION:-2.001}

# Create a temporary extraction directory:
EXTRACT_DIR=$(mktemp -d)

# The Noto Sans CJK font types to package. Valid types are "all", or any of
# these (comma delimited): Black, Bold, DemiLight, Light, Medium, Regular, Thin.
SANS_TYPES=${SANS_TYPES:-all}

# The Noto Serif CJK font types to package. Valid types are "all", or any of
# these (comma delimited): Black, Bold, ExtraLight, Light, Medium, Regular, SemiBold.
SERIF_TYPES=${SERIF_TYPES:-Regular}

( cd $EXTRACT_DIR
  # Does the source exist in $CWD? If so, just copy it here:
  if [ -r $CWD/NotoSansV${VERSION}.tar.gz ]; then
    cp -a $CWD/NotoSansV${VERSION}.tar.gz .
  else
    # Fetch the source:
    lftpget https://github.com/googlefonts/noto-cjk/archive/NotoSansV${VERSION}.tar.gz
  fi
  OUTPUT_TIMESTAMP=$(tar tvvf NotoSansV${VERSION}.tar.gz | head -n 1 | tr -d / | rev | cut -f 2,3 -d ' ' | rev)
  tar xf NotoSansV${VERSION}.tar.gz
  rm NotoSansV${VERSION}.tar.gz
  mv *oto* noto-cjk
  rm -rf noto-cjk/.git
  mkdir -p tmp/fonts
  # Move the selected Noto Sans fonts to tmp/fonts:
  if [ "$SANS_TYPES" = "all" ]; then
    # Use the all-in-one font:
    mv --verbose noto-cjk/NotoSansCJK.ttc.zip tmp/fonts
  else
    echo $SANS_TYPES | tr "," "\n" | while read fonttype ; do
      mv --verbose noto-cjk/NotoSansCJK-${fonttype}.ttc tmp/fonts
    done
  fi
  # Move the selected Noto Serif fonts to tmp/fonts:
  if [ "$SERIF_TYPES" = "all" ]; then
    SERIF_TYPES="Black,Bold,ExtraLight,Light,Medium,Regular,SemiBold"
  fi 
  echo $SERIF_TYPES | tr "," "\n" | while read fonttype ; do
    mv --verbose noto-cjk/NotoSerifCJK-${fonttype}.ttc tmp/fonts
  done
  # Remove the fonts that we won't be packaging:
  rm noto-cjk/*.{ttc,otf,zip}
  # If we moved the zip file, now we have to extract the font:
  if [ -r tmp/fonts/NotoSansCJK.ttc.zip ]; then
    ( cd tmp/fonts
      unzip NotoSansCJK.ttc.zip NotoSansCJK.ttc
      rm NotoSansCJK.ttc.zip
    )
  fi
  # Copy the license, readmes:
  mkdir -p tmp/docs
  mv noto-cjk/* tmp/docs
  cd tmp
  # Fix permissions:
  find . -type f -exec chmod 644 {} \;
  # Create source archive:
  rm -f $CWD/NotoSansCJK_subset-${VERSION}.tar*
  tar cvf $CWD/NotoSansCJK_subset-${VERSION}.tar .
  plzip -9 -v $CWD/NotoSansCJK_subset-${VERSION}.tar
  touch -d "$OUTPUT_TIMESTAMP" $CWD/NotoSansCJK_subset-${VERSION}.tar.lz
)

# Cleanup:
rm -rf $EXTRACT_DIR