#!/usr/bin/env python3 # # List our crates as they appear in Cargo.toml. # Prints the crate names *except* for the ones with publish=false. # Useful for scripting. import toml.decoder import sys import os.path TOPDIR = os.path.split(os.path.dirname(sys.argv[0]))[0] WORKSPACE_TOML = os.path.join(TOPDIR, "Cargo.toml") def print_crates(): t = toml.decoder.load(WORKSPACE_TOML) for path in t['workspace']['members']: pt = toml.decoder.load(path + "/Cargo.toml") publish = pt["package"].get("publish") if publish != False: print(pt["package"]["name"]) if __name__ == '__main__': print_crates()