/* * GetNumericBundleVersion.c * ICeCoffEE * * Created by Nicholas Riley on 2/29/08. * Copyright 2008 Nicholas Riley. All rights reserved. * */ #include #include void usage(const char *fmt, ...) { char *progname = **_NSGetArgv(); if (fmt != NULL) { va_list ap; va_start(ap, fmt); fprintf(stderr, "%s: ", progname); vfprintf(stderr, fmt, ap); fputs("\n", stderr); } fprintf(stderr, "usage: %s bundle_path\n", progname); exit(1); } int main(int argc, char *argv[]) { if (argc != 2) usage(NULL); CFURLRef url = CFURLCreateFromFileSystemRepresentation(NULL, (UInt8 *)argv[1], strlen(argv[1]), true); if (url == NULL) usage(NULL); CFBundleRef bundle = CFBundleCreate(NULL, url); if (bundle == NULL) usage("can't create CFBundleRef from %s", argv[1]); UInt32 version = CFBundleGetVersionNumber(bundle); if (version == 0) usage("can't get version from %s", argv[1]); printf("%d\n", version); return 0; }