Path: blob/main/sys/contrib/openzfs/cmd/zstream/zstream.c
48383 views
// SPDX-License-Identifier: CDDL-1.01/*2* CDDL HEADER START3*4* This file and its contents are supplied under the terms of the5* Common Development and Distribution License ("CDDL"), version 1.0.6* You may only use this file in accordance with the terms of version7* 1.0 of the CDDL.8*9* A full copy of the text of the CDDL should have accompanied this10* source. A copy of the CDDL is also available via the Internet at11* http://www.illumos.org/license/CDDL.12*13* CDDL HEADER END14*/1516/*17* Copyright (c) 2020 by Delphix. All rights reserved.18* Copyright (c) 2020 by Datto Inc. All rights reserved.19*/20#include <sys/types.h>21#include <sys/stat.h>22#include <fcntl.h>23#include <ctype.h>24#include <stdio.h>25#include <stdlib.h>26#include <string.h>27#include <unistd.h>28#include <libintl.h>29#include <stddef.h>30#include <libzfs.h>31#include "zstream.h"3233void34zstream_usage(void)35{36(void) fprintf(stderr,37"usage: zstream command args ...\n"38"Available commands are:\n"39"\n"40"\tzstream dump [-vCd] FILE\n"41"\t... | zstream dump [-vCd]\n"42"\n"43"\tzstream decompress [-v] [OBJECT,OFFSET[,TYPE]] ...\n"44"\n"45"\tzstream recompress [ -l level] TYPE\n"46"\n"47"\tzstream token resume_token\n"48"\n"49"\tzstream redup [-v] FILE | ...\n");50exit(1);51}5253int54main(int argc, char *argv[])55{56char *basename = strrchr(argv[0], '/');57basename = basename ? (basename + 1) : argv[0];58if (argc >= 1 && strcmp(basename, "zstreamdump") == 0)59return (zstream_do_dump(argc, argv));6061if (argc < 2)62zstream_usage();6364char *subcommand = argv[1];6566if (strcmp(subcommand, "dump") == 0) {67return (zstream_do_dump(argc - 1, argv + 1));68} else if (strcmp(subcommand, "decompress") == 0) {69return (zstream_do_decompress(argc - 1, argv + 1));70} else if (strcmp(subcommand, "recompress") == 0) {71return (zstream_do_recompress(argc - 1, argv + 1));72} else if (strcmp(subcommand, "token") == 0) {73return (zstream_do_token(argc - 1, argv + 1));74} else if (strcmp(subcommand, "redup") == 0) {75return (zstream_do_redup(argc - 1, argv + 1));76} else {77zstream_usage();78}79}808182