#next-cloud #utilities #cli-client #cli

app nxcloud

A client for interacting with your NextCloud server

3 unstable releases

0.2.1 Feb 1, 2021
0.2.0 Nov 18, 2020
0.1.0 Sep 1, 2020

#5 in #next-cloud

MIT/Apache

47KB
1K SLoC

NXCloud

NextCloud Client Command Line Interface

Crates.io Crates.io License License

Table of Contents
  1. About
  2. Installation
  3. Usage
  4. Building and Testing
  5. Contributing
  6. Status
  7. Built With
  8. Contact
  9. License

About

A CLI client to interact with a NextCloud server.

Features:

  • Allows for pushing and pulling files on the server.
  • Creating and Deleting remote directories.
  • Listing files.
  • Interactive browsing through the shell command

This application makes it possible to exchange a client and a NextCloud server without the need of a GUI. This CLI is compatible with Linux. It has also been built with Windows and MacOs in mind, they are untested at the moment and mileage may vary.

Installation

For a general cross platform linux a Snap package is available.
snap install nxcloud

If you have rust installed you can use cargo.
requires a the following packages to be install: libdbus-1-dev, build-essential, libssl-dev (Debian names ,probably installed by default)
cargo install nxcloud

Other packaged binary's are available in Releases

Usage

The binary name is nxcloud

To display application use nxcloud help
Use nxcloud <subcommand> help for help with that subcommand.

Examples

To start using the interacting with you're NextCloud you need to login.
Use an app password as opposed your account password.
nxcloud login <server> <username> <password>

Listing files in a directory, support -l and -a.
nxcloud ls -la

Pushing and pulling is very simple.
nxcloud pull <source file path (remote)> <destination file path (local)>
nxcloud pull <source file path (local)> <destination file path (remote)>

Entering a shell to remember current (remote) directory (Experimental).
Allows usage of the cd subcommand.
nxcloud shell

Building and Testing

This repository is a standard rust project bin structure.

Setup

  • Install Rust
  • Install libdbus-1-dev, build-essential, libssl-dev (Linux)
    apt install libdbus-1-dev build-essential libssl-dev (Debian based)
  • Clone repository

Compile and Run

Rust support building or running with the following commands:
cargo build Will build an executable in /target/debug/.
cargo run -- <args> Will build and run an executable.

Testing

Testing all standard test can be done with rust built in test framework.
cargo test

Some tests cannot be completed with 100% reliability (for example they might fail without network access), this will run all ignored tests.
cargo test -- --ignored

Documentation

Rust built in documentation tools can be generated.
cargo doc

To open with your default browser.
cargo doc --open

Contributing

Contributions are completely welcome and encouraged!
Examples of contributing could include:

  • Submitting a feature request or bug report.
  • Asking for improved documentation.
  • Code by creating a pull request.

Refer to Contributing

Status

Development is still in progress with new features being planned.
Feel free to Contribute.

Built With

Rust

Contact

Created by Ethan Budd
Email: budde25@protonmail.com

License

Dual-licensed under either either of the following:

Dependencies

~14–33MB
~503K SLoC