Skip to content
Snippets Groups Projects
Commit 3d87546c authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Add support for looping through fonts (-l option) with pause (-p)

Cleaned-up the font filename weirdness in the lib.
parent dc6caaf2
Branches
No related tags found
No related merge requests found
......@@ -36,7 +36,7 @@ function loadfont(fn_arg) {
// Construct font file path
if (fn_arg.indexOf('/') === -1) {
if (fn_arg.indexOf('.') !== -1) {
if (file_getext(fn_arg)) {
fn = file_getcase(FONT_DIR + fn_arg);
} else {
fn = file_getcase(FONT_DIR + fn_arg + "." + FONT_EXT);
......@@ -339,17 +339,19 @@ function reset_color()
return "\x1b[0m";
}
function getlist() {
return directory(FONT_DIR + "*." + FONT_EXT); // Get all .tdf files
}
function output(str, font) {
var orgfont = font;
while (true) {
try {
if (!font) { // Random font file selection
var fontDir = FONT_DIR;
var files = directory(fontDir + "/*.tdf"); // Get all .tdf files
var files = getlist();
if (files.length > 0) {
var randomIndex = random((files.length)+1);
var filename = file_getname(files[randomIndex]);
font = filename.replace(/\.tdf$/i, "");
font = file_getname(files[randomIndex]);
}
}
if (typeof font == "string")
......
......@@ -22,6 +22,8 @@ function usage() {
writeln(" -n No blank line between wrapped output lines");
writeln(" -W Always word-wrap the output");
writeln(" -i Print font details");
writeln(" -l Loop through the available fonts");
writeln(" -p Pause between fonts");
writeln(" -r Use random font and/or index (if not specified with -x)");
writeln(" -R Use random font and auto-retry upon exception");
writeln(" -h Print usage");
......@@ -30,7 +32,8 @@ function usage() {
}
var fontfile = null;
var loopfonts = false;
var pause = false;
var input_string = "";
for(i = 0; i < argv.length; ++i) {
var arg = argv[i];
......@@ -69,6 +72,10 @@ for(i = 0; i < argv.length; ++i) {
tdf.opt.utf8 = true;
} else if (arg === "-i") {
tdf.opt.info = true;
} else if (arg === "-l") {
loopfonts = true;
} else if (arg === "-p") {
pause = true;
} else if (arg === "-r") {
tdf.opt.random = true;
} else if (arg === "-R") {
......@@ -85,10 +92,23 @@ for(i = 0; i < argv.length; ++i) {
}
}
if (!fontfile && !tdf.opt.random)
if (!fontfile && !tdf.opt.random && !loopfonts)
usage();
if (!input_string)
usage();
tdf.printstr(input_string, fontfile);
if (loopfonts) {
var list = tdf.getlist();
for (var i in list) {
if (pause && i > 0)
prompt("Hit enter");
try {
tdf.printstr(input_string, list[i]);
} catch(e) {
if (tdf.opt.info)
print("exception: " + e);
}
}
} else
tdf.printstr(input_string, fontfile);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment