Mirror of pcloudcc-lneely, an independent fork of pcloudcom/console-client hosted on Github.
Go to file
Levi Neely aae646033b Streamline CLI11.hpp to functionality actually used by pcloudcc 2024-11-28 18:47:05 +01:00
.github/workflows reorg source tree, link system mbedtls (#38) 2024-08-15 19:49:57 +02:00
dev Cherry pick 20240910 (#69) 2024-09-10 16:26:16 +02:00
doc Document request-response flow (#63) 2024-08-25 23:30:28 +02:00
pclsync Appease the LSP server (#73) 2024-11-26 19:36:49 +01:00
.clang-format enabled clang formatting, default (llvm) style 2024-06-30 11:45:13 +02:00
.gitignore Bug fixes, build containers, minor updates (#54) 2024-08-20 22:00:38 +02:00
CLI11.hpp Streamline CLI11.hpp to functionality actually used by pcloudcc 2024-11-28 18:47:05 +01:00
Makefile Implement add, remove, and list sync folder commands (#59) 2024-08-25 21:54:41 +02:00
README.md improve cli command parser (#74) 2024-11-27 22:11:40 +01:00
control_tools.cpp improve cli command parser (#74) 2024-11-27 22:11:40 +01:00
control_tools.h reorg source tree, link system mbedtls (#38) 2024-08-15 19:49:57 +02:00
main.cpp Implement add, remove, and list sync folder commands (#59) 2024-08-25 21:54:41 +02:00
pclsync_lib.cpp Implement add, remove, and list sync folder commands (#59) 2024-08-25 21:54:41 +02:00
pclsync_lib.h Implement add, remove, and list sync folder commands (#59) 2024-08-25 21:54:41 +02:00

README.md

pCloud Console Client (undead)

This is a simple linux console client for pCloud cloud storage, derived from the console-client developed by pCloud.

Braaaaaains (Fork, please)

This version of pcloudcc is independently maintained by me, whose only affiliation with pCloud is as a user of their services. As of June 2024, the console-client repo (https://github.com/pcloudcom/console-client) seems to have been inactive for several years. This was an attractive alternative for myself and other like-minded weirdos who don't enjoy unneeded GUIs, and it is a shame to see it abandoned.

Supported Distributions & Packages

pcloudcc-lneely seeks to support as many Linux distributions as possible and has been tested on recent versions of Fedora, Debian, Ubuntu, Arch, and Artix.

I use Artix and maintain an AUR package. I do not plan on providing or maintaining any other packages, but encourage anyone interested in doing so for their own distributions.

Due Credit

  • Anton Titov
  • Ivan Stoev
  • pCloud

Dependencies

  • zlib (-lz)
  • boost (-lboost_system, -lboost_program_options)
  • pthread (lpthread)
  • udev (-ludev)
  • libfuse (-lfuse)
  • libsqlite (-lsqlite3)
  • libmbedtls (-l:libmbedtls.so.14, -l:libmbedx509.so.1, -l:libmbedcrypto.so.7)

Building

make

It's really that easy. Use make install to install, and make uninstall to uninstall. Specify DESTDIR if desired (see Make Options).

Make Options

make BUILD=debug            # include debug symbols, ASan instrumentation. (default: release)
make STATIC=0               # dynamically link libpcloudcc_lib.so. (default: 1)
make SCAN=1                 # run code analysis; recommend CC=clang and CXX=clang++. (default: 0)
make CC=clang CXX=clang++   # use clang instead of gcc (default: gcc,g++)
make DESTDIR=/prefix        # installation prefix (default: /usr/local/bin)

Usage

Getting Help

Terminal command is pcloudcc and -h option prints short options description.

pcloudcc -h

First Use

Start the service in the foreground using the -p switch to enter your password, and the -s switch to save the password to the database. Verify that file system starts and mounts normally after the

pcloudcc -u example@myemail.com -p -s

Registration

If you don't have existing user use -n switch to register new user:

pcloudcc -u example@myemail.com -p -s -n

Notice that a new user may take a while to mount. Please, be patient.

Run as Daemon

If you have saved your password, then you can run pcloudcc as a background daemon. Verify the filesystem is mounted when the daemon starts.

pcloudcc -u example@myemail.com -d

Command Prompt

Use the command prompt to interact with a running daemon.

pcloudcc -k

Command Reference:

  help(?): Show this help message
  crypto(c):
    start <crypto pass>: Unlock crypto folder
    stop: Lock crypto folder
  sync(s):
    list(ls): List sync folders
    add <localpath> <remotepath>: Add sync folder
    remove(rm) <folderid>: Remove sync folder
  finalize(f): Kill daemon and quit
  quit(q): Exit this program

Note. Command line arguments that include special characters (e.g., the crypto start password or paths with spaces) must now be quoted or escaped. In other words, instead of:

startcrypto Str0ng p4$$word 4 great jUSTicE!

One must now type, for example:

c start 'Str0ng p4$$word 4 great jUSTicE!'

If the password includes quotes for some reason, then those characters must be escaped properly.

Warning

Stopping daemon will break pending background transfers! pcloudcc does not currently provide a command to check for pending transfers. You can currently check this by ensuring there is only one file named cached in ~/.pcloud/Cache. Usually this is a large file.