# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

[package]
categories = ["filesystem"]
description = "OpenDAL Command Line Interface"
keywords = ["storage", "data", "s3", "fs", "azblob"]
name = "oli"

authors = ["Apache OpenDAL <dev@opendal.apache.org>"]
edition = "2021"
homepage = "https://opendal.apache.org/"
license = "Apache-2.0"
repository = "https://github.com/apache/opendal"
rust-version = "1.82"
version = "0.41.23"

[dependencies]
anyhow = { version = "1.0" }
clap = { version = "4.5", features = ["cargo", "string", "derive"] }
dirs = { version = "6.0" }
futures = { version = "0.3" }
humansize = { version = "2.1" }
humantime = { version = "2.2" }
humantime-serde = { version = "1.1" }
indicatif = { version = "0.18" }
opendal = { version = "0.54.0", path = "../../core", features = [
  "services-azblob",
  "services-azdls",
  "services-cos",
  "services-fs",
  "services-gcs",
  "services-ghac",
  "services-http",
  "services-ipmfs",
  "services-obs",
  "services-oss",
  "services-s3",
  "services-webdav",
  "services-webhdfs",
  "services-azfile",
  "services-dropbox",
] }
parse-size = { version = "1.1" }
pollster = { version = "0.4" }
serde = { version = "1.0", features = ["derive"] }
tempfile = { version = "3.21" }
tokio = { version = "1.47", features = ["full"] }
toml = { version = "0.9" }
url = { version = "2.5" }
uuid = { version = "1.17" }

[dev-dependencies]
assert_cmd = { version = "2.0" }
comfy-table = "7"
insta = { version = "1.43", features = ["filters"] }
insta-cmd = { version = "0.6" }
regex = "1"
walkdir = "2.5.0"
