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