# HG changeset patch # User Chris Cannam # Date 1499690780 -3600 # Node ID 76872ffc03a3a74ece75dffae8c1fbeb6a4ed3e1 # Parent 5185ee58c44baf39ea5f0705149cc8c0dc8e69a0 Update Vext and lock file diff -r 5185ee58c44b -r 76872ffc03a3 vext-lock.json --- a/vext-lock.json Mon Jul 10 12:55:47 2017 +0100 +++ b/vext-lock.json Mon Jul 10 13:46:20 2017 +0100 @@ -1,46 +1,46 @@ -{ - "libraries": { - "vamp-plugin-sdk": { - "pin": "5d9af3140f05" - }, - "svcore": { - "pin": "09751743647e" - }, - "svgui": { - "pin": "14dcdc596baf" - }, - "svapp": { - "pin": "72b4870f0e6b" - }, - "checker": { - "pin": "cf18645ff411" - }, - "piper": { - "pin": "169626171d22e6c49c6bc4759283406f4336a5cb" - }, - "piper-cpp": { - "pin": "b146634c3686168a9d4bb739986d065b5d2d40a2" - }, - "dataquay": { - "pin": "807b55408d9e" - }, - "bqvec": { - "pin": "e345a5e32c53" - }, - "bqfft": { - "pin": "81b50ec12d9a" - }, - "bqresample": { - "pin": "39a30cdbb421" - }, - "bqaudioio": { - "pin": "d90244c003be" - }, - "sv-dependency-builds": { - "pin": "a69c1527268d" - }, - "icons/scalable": { - "pin": "3d2cde3b1ab3" - } - } -} +{ + "libraries": { + "vamp-plugin-sdk": { + "pin": "5d9af3140f05" + }, + "svcore": { + "pin": "09751743647e" + }, + "svgui": { + "pin": "14dcdc596baf" + }, + "svapp": { + "pin": "72b4870f0e6b" + }, + "checker": { + "pin": "cf18645ff411" + }, + "piper": { + "pin": "169626171d22e6c49c6bc4759283406f4336a5cb" + }, + "piper-cpp": { + "pin": "b146634c3686168a9d4bb739986d065b5d2d40a2" + }, + "dataquay": { + "pin": "807b55408d9e" + }, + "bqvec": { + "pin": "e345a5e32c53" + }, + "bqfft": { + "pin": "81b50ec12d9a" + }, + "bqresample": { + "pin": "39a30cdbb421" + }, + "bqaudioio": { + "pin": "d90244c003be" + }, + "sv-dependency-builds": { + "pin": "a69c1527268d" + }, + "icons/scalable": { + "pin": "3d2cde3b1ab3" + } + } +} diff -r 5185ee58c44b -r 76872ffc03a3 vext.sml --- a/vext.sml Mon Jul 10 12:55:47 2017 +0100 +++ b/vext.sml Mon Jul 10 13:46:20 2017 +0100 @@ -889,11 +889,12 @@ | Json.ERROR e => raise Fail ("Failed to parse file: " ^ e) fun save_json_to filename json = + (* using binary I/O to avoid ever writing CR/LF line endings *) let val jstr = Json.serialiseIndented json - val stream = TextIO.openOut filename + val stream = BinIO.openOut filename in - TextIO.output (stream, jstr); - TextIO.closeOut stream + BinIO.output (stream, Byte.stringToBytes jstr); + BinIO.closeOut stream end fun lookup_optional json kk = @@ -1435,7 +1436,11 @@ } end -fun load_project (userconfig : userconfig) rootpath use_locks : project = +datatype pintype = + NO_LOCKFILE | + USE_LOCKFILE + +fun load_project (userconfig : userconfig) rootpath pintype : project = let val spec_file = FileBits.project_spec_path rootpath val lock_file = FileBits.project_lock_path rootpath val _ = if OS.FileSys.access (spec_file, [OS.FileSys.A_READ]) @@ -1447,7 +1452,7 @@ ".\nPlease ensure the spec file is in the " ^ "project root and run this from there.") val spec_json = JsonBits.load_json_from spec_file - val lock_json = if use_locks + val lock_json = if pintype = USE_LOCKFILE then JsonBits.load_json_from lock_file handle IO.Io _ => Json.OBJECT [] else Json.OBJECT [] @@ -1607,15 +1612,15 @@ return_code end -fun load_local_project use_locks = +fun load_local_project pintype = let val userconfig = load_userconfig () val rootpath = OS.FileSys.getDir () in - load_project userconfig rootpath use_locks + load_project userconfig rootpath pintype end -fun with_local_project use_locks f = - let val return_code = f (load_local_project use_locks) +fun with_local_project pintype f = + let val return_code = f (load_local_project pintype) handle e => (print ("Failed with exception: " ^ (exnMessage e) ^ "\n"); @@ -1625,10 +1630,10 @@ return_code end -fun review () = with_local_project false review_project -fun status () = with_local_project false status_of_project -fun update () = with_local_project false update_project -fun install () = with_local_project true update_project +fun review () = with_local_project NO_LOCKFILE review_project +fun status () = with_local_project NO_LOCKFILE status_of_project +fun update () = with_local_project NO_LOCKFILE update_project +fun install () = with_local_project USE_LOCKFILE update_project fun version () = (print ("v" ^ vext_version ^ "\n");