int main( int argc, char *argv[] ) { int i; if (argc <= 2) { print_help(); return EXIT_FAILURE; } int a = strcmp(argv[1], "-e"), b = strcmp(argv[1], "--extract"), res; if (a == 0 || b == 0) { res = unpack_files(argv[2]); if (res == -1) { printf("Error occured during files unpacking.\n"); return EXIT_FAILURE; } } else { res = archive_files(argv + 1, argc - 2, argv[argc - 1]); if (res == -1) return EXIT_FAILURE; } return EXIT_SUCCESS; }
MPORT_PUBLIC_API int mport_create_primative(mportAssetList *assetlist, mportPackageMeta *pack, mportCreateExtras *extra) { int ret; sqlite3 *db; char dirtmpl[] = "/tmp/mport.XXXXXXXX"; char *tmpdir = mkdtemp(dirtmpl); if (tmpdir == NULL) { ret = SET_ERROR(MPORT_ERR_FATAL, strerror(errno)); goto CLEANUP; } if ((ret = create_stub_db(&db, tmpdir)) != MPORT_OK) goto CLEANUP; if ((ret = insert_assetlist(db, assetlist, pack, extra)) != MPORT_OK) goto CLEANUP; if ((ret = insert_meta(db, pack, extra)) != MPORT_OK) goto CLEANUP; if (sqlite3_close(db) != SQLITE_OK) { ret = SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db)); goto CLEANUP; } if ((ret = archive_files(assetlist, pack, extra, tmpdir)) != MPORT_OK) goto CLEANUP; CLEANUP: clean_up(tmpdir); return ret; }
JNIEXPORT jstring JNICALL Java_com_sun_netstorage_samqfs_mgmt_arc_Archiver_archiveFiles(JNIEnv *env, jclass cls /* ARGSUSED */, jobject ctx, jobjectArray files, jint options) { char *jobID; PTRACE(1, "jni:Releaser_releaseFiles() entry"); if (-1 == archive_files(CTX, jarray2lst(env, files, "java/lang/String", String2charr), (int32_t)options, &jobID)) { ThrowEx(env); return (NULL); } PTRACE(1, "jni:Archiver_archiveFiles() exit"); return (JSTRING(jobID)); }
static int cmd_create(const char *archive_path, int count, const char **files) { if (count < 1 || !files) { fprintf(stderr, "Error: no input files specified\n"); return -1; } if (setup_archive(count, files)) return -1; if (archive_files(files)) return -1; if (output_archive(archive_path)) return -1; return 0; }