hws/build.sc
author Christian Urban <christian.urban@kcl.ac.uk>
Mon, 03 Feb 2025 12:35:54 +0000
changeset 979 398a37bc784c
parent 977 1e6eca42d90b
permissions -rwxr-xr-x
updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
928
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     1
#!/usr/bin/env amm
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     2
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     3
val files = Seq("hw01.tex",
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     4
	        "hw02.tex",
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     5
	        "hw03.tex",
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     6
	        "hw04.tex",
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     7
	        "hw05.tex",
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     8
                "hw06.tex",
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     9
	        "hw07.tex",
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    10
	        "hw08.tex",
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    11
	        "hw09.tex")
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    12
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    13
val pdf_files = files.map(s => s.stripSuffix("tex") ++ "pdf")
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    14
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    15
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    16
@main
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    17
def make() = {
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    18
  for (f <- files) {
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    19
    println(s"Processing $f ...")
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    20
    os.proc("lualatex", f).call(stdout = os.Inherit, stdin = os.Inherit)
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    21
  }
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    22
}
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    23
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    24
@main
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    25
def make_sols() = {
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    26
  for (f <- files) {
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    27
    val old_pdf = f.stripSuffix(".tex") ++ ".pdf"
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    28
    val new_pdf = f.stripSuffix(".tex") ++ "-sol.pdf"
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    29
    println(s"Processing $f -> $new_pdf ...")
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    30
    os.proc("lualatex", f, "sol").call(stdout = os.Inherit, stdin = os.Inherit)
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    31
    os.move.over(os.pwd / old_pdf, os.pwd / new_pdf)
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    32
  }
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    33
}
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    34
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    35
@main
937
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 928
diff changeset
    36
def all() = {
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 928
diff changeset
    37
  make_sols()
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 928
diff changeset
    38
  make()
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 928
diff changeset
    39
}
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 928
diff changeset
    40
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 928
diff changeset
    41
@main
928
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    42
def hg() = {
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    43
  println(os.proc("hg", "commit", "-m texupdate", files ++ pdf_files).call())
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    44
  println(os.proc("hg", "push").call())
2f3c077359c4 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    45
}
977
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    46
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    47
// extensions of files to be deleted
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    48
val todelete =
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    49
  List("fdb_latexmk",
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    50
       "log",
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    51
       "aux",
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    52
       "xdv",
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    53
       "out", 
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    54
       "fls")
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    55
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    56
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    57
@main
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    58
def clean() = {
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    59
  for (f <- os.list.stream(os.pwd) if todelete.contains(f.ext)) {
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    60
    println(s"Delete: ${f.last}")
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    61
    os.remove(f)
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    62
  }
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    63
}
1e6eca42d90b updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 937
diff changeset
    64