kiliman / operator-mono-lig

Add ligatures to Operator Mono similar to Fira Code
MIT License
3.2k stars 202 forks source link

Build fails in Big Sur #161

Closed scottkz closed 3 years ago

scottkz commented 3 years ago

I installed fonttools with pip3 install fonttools, and I have node.js installed as well, v14.15.1 (LTS), I placed my two files in the original folder and I get this error. Filenames areOperatorMono-Book.otf and OperatorMono-BookItalic.otf. Am I doing something wrong here?

./build.sh
67.87.22.204  41% Building OperatorMonoLig-Book ./build.sh: line 20: ttx: command not found Reading original font file ./original/OperatorMono-Book.ttx internal/fs/utils.js:307 throw err; ^

Error: ENOENT: no such file or directory, open './original/OperatorMono-Book.ttx' at Object.openSync (fs.js:476:3) at Object.readFileSync (fs.js:377:35) at main (/Users/Scott/operator-mono-lig/index.js:31:18) at Object. (/Users/Scott/operator-mono-lig/index.js:436:1) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) at Function.Module._load (internal/modules/cjs/loader.js:769:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) at internal/main/run_main_module.js:17:47 { errno: -2, syscall: 'open', code: 'ENOENT', path: './original/OperatorMono-Book.ttx' } ./build.sh: line 23: ttx: command not found ./build.sh: line 25: fonttools: command not found Building OperatorMonoLig-BookItalic ./build.sh: line 20: ttx: command not found Reading original font file ./original/OperatorMono-BookItalic.ttx internal/fs/utils.js:307 throw err; ^

Error: ENOENT: no such file or directory, open './original/OperatorMono-BookItalic.ttx' at Object.openSync (fs.js:476:3) at Object.readFileSync (fs.js:377:35) at main (/Users/Scott/operator-mono-lig/index.js:31:18) at Object. (/Users/Scott/operator-mono-lig/index.js:436:1) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) at Function.Module._load (internal/modules/cjs/loader.js:769:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) at internal/main/run_main_module.js:17:47 { errno: -2, syscall: 'open', code: 'ENOENT', path: './original/OperatorMono-BookItalic.ttx' } ./build.sh: line 23: ttx: command not found ./build.sh: line 25: fonttools: command not found

kiliman commented 3 years ago

The error is ./build.sh: line 20: ttx: command not found

That means the shell can't find ttx on the PATH.

What do you see when you run where ttx or where fonttools?

I use pyenv to manage my Python install. Did you install Python using Homebrew?

image

scottkz commented 3 years ago

I had previously installed it directly from python.org and had to clean up my files of all those files before I installed it using pyenv. I used pyenv on an older mac and it works great. I'm getting it set up now, and see if it can find ttx and fonttools after. I'll let you know as soon as I do. Thanks!

scottkz commented 3 years ago

Works now that I'm using pyenv. Thanks again!

dvcrn commented 3 years ago

This didn't fix the issue for me. Neither with system python, pyenv python or when installing fonttools into a local virtualenv

Any ideas?

ERROR: File not found: "./original/OperatorMonoSSm-Bold.otf"
Reading original font file ./original/OperatorMonoSSm-Bold.ttx
node:internal/fs/utils:320
    throw err;
    ^

Error: ENOENT: no such file or directory, open './original/OperatorMonoSSm-Bold.ttx'
    at Object.openSync (node:fs:495:3)
    at Object.readFileSync (node:fs:396:35)
    at main (/Users/david/src/operator-mono-lig/index.js:31:18)
    at Object.<anonymous> (/Users/david/src/operator-mono-lig/index.js:436:1)
    at Module._compile (node:internal/modules/cjs/loader:1108:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1137:10)
    at Module.load (node:internal/modules/cjs/loader:973:32)
    at Function.Module._load (node:internal/modules/cjs/loader:813:14)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
    at node:internal/main/run_main_module:17:47 {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: './original/OperatorMonoSSm-Bold.ttx'
}
usage: ttx [options] inputfile1 [... inputfileN]

    TTX -- From OpenType To XML And Back

    If an input file is a TrueType or OpenType font file, it will be
       decompiled to a TTX file (an XML-based text format).
    If an input file is a TTX file, it will be compiled to whatever
       format the data is in, a TrueType or OpenType/CFF font file.

    Output files are created so they are unique: an existing file is
       never overwritten.

    General options:
    -h Help: print this message.
    --version: show version and exit.
    -d <outputfolder> Specify a directory where the output files are
       to be created.
    -o <outputfile> Specify a file to write the output to. A special
       value of - would use the standard output.
    -f Overwrite existing output file(s), ie. don't append numbers.
    -v Verbose: more messages will be written to stdout about what
       is being done.
    -q Quiet: No messages will be written to stdout about what
       is being done.
    -a allow virtual glyphs ID's on compile or decompile.

    Dump options:
    -l List table info: instead of dumping to a TTX file, list some
       minimal info about each table.
    -t <table> Specify a table to dump. Multiple -t options
       are allowed. When no -t option is specified, all tables
       will be dumped.
    -x <table> Specify a table to exclude from the dump. Multiple
       -x options are allowed. -t and -x are mutually exclusive.
    -s Split tables: save the TTX data into separate TTX files per
       table and write one small TTX file that contains references
       to the individual table dumps. This file can be used as
       input to ttx, as long as the table files are in the
       same directory.
    -g Split glyf table: Save the glyf data into separate TTX files
       per glyph and write a small TTX for the glyf table which
       contains references to the individual TTGlyph elements.
       NOTE: specifying -g implies -s (no need for -s together with -g)
    -i Do NOT disassemble TT instructions: when this option is given,
       all TrueType programs (glyph programs, the font program and the
       pre-program) will be written to the TTX file as hex data
       instead of assembly. This saves some time and makes the TTX
       file smaller.
    -z <format> Specify a bitmap data export option for EBDT:
       {'raw', 'row', 'bitwise', 'extfile'} or for the CBDT:
       {'raw', 'extfile'} Each option does one of the following:
         -z raw
            * export the bitmap data as a hex dump
         -z row
            * export each row as hex data
         -z bitwise
            * export each row as binary in an ASCII art style
         -z extfile
            * export the data as external files with XML references
       If no export format is specified 'raw' format is used.
    -e Don't ignore decompilation errors, but show a full traceback
       and abort.
    -y <number> Select font number for TrueType Collection (.ttc/.otc),
       starting from 0.
    --unicodedata <UnicodeData.txt> Use custom database file to write
       character names in the comments of the cmap TTX output.
    --newline <value> Control how line endings are written in the XML
       file. It can be 'LF', 'CR', or 'CRLF'. If not specified, the
       default platform-specific line endings are used.

    Compile options:
    -m Merge with TrueType-input-file: specify a TrueType or OpenType
       font file to be merged with the TTX file. This option is only
       valid when at most one TTX file is specified.
    -b Don't recalc glyph bounding boxes: use the values in the TTX
       file as-is.
    --recalc-timestamp Set font 'modified' timestamp to current time.
       By default, the modification time of the TTX file will be used.
    --no-recalc-timestamp Keep the original font 'modified' timestamp.
    --flavor <type> Specify flavor of output font file. May be 'woff'
      or 'woff2'. Note that WOFF2 requires the Brotli Python extension,
      available at https://github.com/google/brotli
    --with-zopfli Use Zopfli instead of Zlib to compress WOFF. The Python
      extension is available at https://pypi.python.org/pypi/zopfli

ERROR: File not found: "./build/OperatorMonoSSmLig-Bold.ttx"
dvcrn commented 3 years ago

Figured it out. I wasn't aware how picky it is about the file names

kiliman commented 3 years ago

I need to update the build scripts to quit on error and display a meaningful message instead of giving you a big wall of text. Sorry for the confusion.