Mirror of pcloudcc-lneely, an independent fork of pcloudcom/console-client hosted on Github.
Go to file
Levi Neely c687484707
Implement add, remove, and list sync folder commands (#59)
* list_sync_folders seems to work

* list_sync_folders breaks with sync folders in db; message size problem?

* fixed sync folders list

* fix double free and buffer overflow

* wip: add and remove sync folder; need to fix request->value in instance_thread

* remove comment

* removed pclsync_lib_c.{h,cpp}

* cleanup get_answer_to_request

* update comment

* changed reply struct to type response containing payload and msg

* cleanup

* refactored overlay_client, and poverlay; added docs

* better naming

* sock path in poverlay_protocol.h

* clarify comment

* refactor psync_overlay_get_response

* clarifications

* response_messages work with and without payload

* removed commented code

* syncadd works, but i need to fix the error handling

* remove sync folder

* remove commented code, change printfs to debug or simply remove

* removed unnecessary print

* removed more prints

* removed dead var

* update error handling in add_sync_folder, fix memleak

* simplified finalize
2024-08-25 21:54:41 +02:00
.github/workflows reorg source tree, link system mbedtls (#38) 2024-08-15 19:49:57 +02:00
container Bug fixes, build containers, minor updates (#54) 2024-08-20 22:00:38 +02:00
pclsync Implement add, remove, and list sync folder commands (#59) 2024-08-25 21:54:41 +02: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
Makefile Implement add, remove, and list sync folder commands (#59) 2024-08-25 21:54:41 +02:00
README.md Update README.md (#58) 2024-08-20 23:17:09 +02:00
control_tools.cpp Implement add, remove, and list sync folder commands (#59) 2024-08-25 21:54:41 +02: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:

startcrypto - use your password to unlock the crypto folder

stopcrypto – lock the crypto folder

finalize – stops the running daemon.

quit, q - exits the command prompt, daemon continues running in background

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.