103 lines
2.6 KiB
Markdown
103 lines
2.6 KiB
Markdown
# Description
|
|
Command line tool for [gowebdav](https://github.com/studio-b12/gowebdav) library.
|
|
|
|
# Prerequisites
|
|
## Software
|
|
* **OS**: all, which are supported by `Golang`
|
|
* **Golang**: version 1.x
|
|
* **Git**: version 2.14.2 at higher (required to install via `go get`)
|
|
|
|
# Install
|
|
```sh
|
|
go get -u github.com/studio-b12/gowebdav/cmd/gowebdav
|
|
```
|
|
|
|
# Usage
|
|
It is recommended to set following environment variables to improve your experience with this tool:
|
|
* `ROOT` is an URL of target WebDAV server (e.g. `https://webdav.mydomain.me/user_root_folder`)
|
|
* `USER` is a login to connect to specified server (e.g. `user`)
|
|
* `PASSWORD` is a password to connect to specified server (e.g. `p@s$w0rD`)
|
|
|
|
In following examples we suppose that:
|
|
* environment variable `ROOT` is set to `https://webdav.mydomain.me/ufolder`
|
|
* environment variable `USER` is set to `user`
|
|
* environment variable `PASSWORD` is set `p@s$w0rD`
|
|
* folder `/ufolder/temp` exists on the server
|
|
* file `/ufolder/temp/file.txt` exists on the server
|
|
* file `/ufolder/temp/document.rtf` exists on the server
|
|
* file `/tmp/webdav/to_upload.txt` exists on the local machine
|
|
* folder `/tmp/webdav/` is used to download files from the server
|
|
|
|
## Examples
|
|
|
|
#### Get content of specified folder
|
|
```sh
|
|
gowebdav -X LS temp
|
|
```
|
|
|
|
#### Get info about file/folder
|
|
```sh
|
|
gowebdav -X STAT temp
|
|
gowebdav -X STAT temp/file.txt
|
|
```
|
|
|
|
#### Create folder on the remote server
|
|
```sh
|
|
gowebdav -X MKDIR temp2
|
|
gowebdav -X MKDIRALL all/folders/which-you-want/to_create
|
|
```
|
|
|
|
#### Download file
|
|
```sh
|
|
gowebdav -X GET temp/document.rtf /tmp/webdav/document.rtf
|
|
```
|
|
|
|
You may do not specify target local path, in this case file will be downloaded to the current folder with the
|
|
|
|
#### Upload file
|
|
```sh
|
|
gowebdav -X PUT temp/uploaded.txt /tmp/webdav/to_upload.txt
|
|
```
|
|
|
|
#### Move file on the remote server
|
|
```sh
|
|
gowebdav -X MV temp/file.txt temp/moved_file.txt
|
|
```
|
|
|
|
#### Copy file to another location
|
|
```sh
|
|
gowebdav -X MV temp/file.txt temp/file-copy.txt
|
|
```
|
|
|
|
#### Delete file from the remote server
|
|
```sh
|
|
gowebdav -X DEL temp/file.txt
|
|
```
|
|
|
|
# Wrapper script
|
|
|
|
You can create wrapper script for your server (via `$EDITOR ./dav && chmod a+x ./dav`) and add following content to it:
|
|
```sh
|
|
#!/bin/sh
|
|
|
|
ROOT="https://my.dav.server/" \
|
|
USER="foo" \
|
|
PASSWORD="$(pass dav/foo@my.dav.server)" \
|
|
gowebdav $@
|
|
```
|
|
|
|
It allows you to use [pass](https://www.passwordstore.org/ "the standard unix password manager") or similar tools to retrieve the password.
|
|
|
|
## Examples
|
|
|
|
Using the `dav` wrapper:
|
|
|
|
```sh
|
|
$ ./dav -X LS /
|
|
|
|
$ echo hi dav! > hello && ./dav -X PUT /hello
|
|
$ ./dav -X STAT /hello
|
|
$ ./dav -X PUT /hello_dav hello
|
|
$ ./dav -X GET /hello_dav
|
|
$ ./dav -X GET /hello_dav hello.txt
|
|
``` |