예제 #1
0
파일: main.c 프로젝트: smi13/semester07
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;
}
예제 #2
0
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;
}
예제 #3
0
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));
}
예제 #4
0
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;
}