Skip to content
On this page

Brick CLI

Vad är Brick CLI?

Brick CLI är kommandoradsklienten för Brick.

Den håller en lokal mapp på din dator synkroniserad med ditt Brick-konto - filer och mappar speglas i båda riktningarna så snart en ändring upptäcks, antingen lokalt eller på servern. Utöver själva synkroniseringen kan du:

  • Ladda upp och ner enskilda filer eller hela mappträd, utan att gå via synkmappen.
  • Välja vilka undermappar som ska hoppas över helt (selektiv synk).
  • Ge fjärråtkomst till filer på enheten via Brick-webappen (remote control).
  • Köra klienten som en daemon i bakgrunden, utan ett öppet terminalfönster.
  • Hantera flera konton och enkelt växla mellan dem.

Installation

Installera senaste versionen på macOS eller Linux så här:

bash
curl -fsSL https://webbite.io/cli/install.sh | bash

Binären installeras till ~/.local/bin som standard.

Kommandon

Brick CLI är uppbyggt av kommandon (login, sync, upload och så vidare). Kör du brick helt utan argument skrivs hjälptexten ut - inget annat händer, ingen synkronisering startar:

plaintext
Usage:
  brick [global flags] <command> [command flags] [args]

Global flags (must come before command):

  -h, --help                    Show help information
  -v, --version                 Show version information
      --no-upgrade-check        Disable automatic upgrade check
      --no-control-api          Disable the local status/control API (used by tray apps)

Account Mgmt:

  login                         Log in via browser
  switch-accounts               Switch the active account
  whoami                        Show logged-in user and account details
  restart                       Clear existing settings and configure Brick from scratch

Storage Sync:

  sync [options]                Sync storageSyncFolder with the Storage API and watch for changes
    -d, --daemon                Detach into the background once logged in and the Storage API is reachable
    -r, --remote-control        Allow remote control via Brick webapp (also possible to enable via config file)
        --agent-root PATH       Directory to expose to remote clients when remote control is enabled (repeatable)
    -s, --selective-sync        Choose which folders to exclude from sync (deletes their local copies)
        --list-selective-sync   List the folders currently excluded from sync

Transfer:

  upload <file|dir> [target]    Upload a local file or folder
    -r, --recursive             Required to upload a folder
    -s, --silent                Suppress all output except errors
        --overwrite             Replace an existing remote file instead of creating a copy
  download <uuid|path> [dir]    Download a remote file or folder
    -r, --recursive             Required to download a folder
    -s, --silent                Suppress all output except errors

Other:

  uninstall                     Uninstall brick

Ett vanligt förstagångsflöde ser ut så här:

bash
brick login
brick switch-accounts   # behövs bara om din användare har fler än ett konto
brick sync

TIP

De globala flaggorna (-h, -v, --no-upgrade-check, --no-control-api) måste anges före kommandot. Alltså brick --no-upgrade-check sync -d, inte brick sync -d --no-upgrade-check.

Kontohantering

bash
# Logga in via webbläsaren
brick login

# Byt aktivt konto
brick switch-accounts

# Visa inloggad användare och kontodetaljer
brick whoami

# Rensa alla lokala inställningar och konfigurera om Brick från grunden
brick restart

Lagringssynkronisering

bash
# Starta synkroniseringen: synkar storageSyncFolder mot Bricks API och
# bevakar sedan mappen för ändringar tills du avbryter med Ctrl+C
brick sync

# Koppla loss synkroniseringen till en bakgrundsprocess (daemon) efter
# att inloggning lyckats och Bricks API är nåbart
brick sync -d
brick sync --daemon

# Tillåt fjärrstyrning via Brick-webappen (kan också aktiveras permanent
# via konfigurationsfilen, se onboardingen nedan)
brick sync -r
brick sync --remote-control

# Exponera ytterligare en mapp för klienter när fjärrstyrning är
# aktiverat (flaggan kan upprepas för fler mappar)
brick sync --agent-root /sökväg/till/mapp

# Välj vilka mappar som ska uteslutas från synk (raderar lokala kopior)
brick sync -s
brick sync --selective-sync

# Lista de mappar som för närvarande är uteslutna från synk
brick sync --list-selective-sync

Filöverföring

bash
# Ladda upp en fil till kontots rotmapp
brick upload rapport.pdf

# Ladda upp en fil till en specifik mapp i molnet
brick upload rapport.pdf /Dokument/Rapporter

# Ladda upp en hel mapp (kräver -r)
brick upload -r ~/Bilder /Bilder

# Ladda ner en fil till aktuell mapp
brick download /Dokument/rapport.pdf

# Ladda ner en hel mapp till en vald lokal mapp (kräver -r)
brick download -r /Dokument ~/Nedladdningar

Se Ladda upp och ner nedan för detaljerna.

Övrigt

bash
# Inaktivera automatisk uppdatering som annars körs vid varje start
brick --no-upgrade-check sync

# Inaktivera den lokala status-/kontroll-API:et som annars används av
# system-tray-appen
brick --no-control-api sync

# Avinstallera brick (binär, konfigurationsfil, shell-completions och
# man-sida - du väljer själv vad som ska tas bort)
brick uninstall

# Visa hjälptext (samma sak som att köra brick utan argument)
brick -h
brick --help

# Visa versionsinformation
brick -v
brick --version

Första körningen

Första gången du kör brick sync - innan du har loggat in eller konfigurerat en synkmapp - guidar en interaktiv onboarding-guide dig genom följande steg, i tur och ordning:

1. Inloggning

Om du inte redan är inloggad öppnas din webbläsare mot Brick för autentisering. Väljer du att inte logga in avbryts körningen.

2. Val av synkmapp

Du får välja var på datorn dina filer ska synkroniseras:

plaintext
Choose a sync folder
> Use ~/Brick
  Pick existing folder in ~
  Create folder
  • Use ~/Brick - skapar och använder standardmappen ~/Brick.
  • Pick existing folder - låter dig bläddra fram en befintlig mapp.
  • Create folder - låter dig skriva in namnet (eller en relativ sökväg) på en ny mapp som skapas åt dig.

3. Konflikthantering vid första synk

Om den valda mappen inte är tom frågar Brick hur eventuella filer som redan finns på båda sidor (lokalt och i molnet) ska hanteras. Se Konflikthantering nedan för de tre alternativen.

4. Vad ska synkas

Om ditt konto redan innehåller mappar i molnet får du välja om allt ska synkas, eller om du vill utesluta vissa toppnivåmappar redan från start:

plaintext
Sync scope
> Sync all folders from Brick (1.2 GB)
  Pick which folders to sync

5. Fjärråtkomst (remote control)

Till sist frågar guiden om du vill kunna komma åt filer på den här enheten på distans via Brick-webappen:

plaintext
Do you want to remotely access files on this device via Brick? (Y/n):

Svarar du ja väljer du sedan vilken mapp som ska vara tillgänglig - din hemmapp eller en valfri mapp du bläddrar fram. Läs mer under Remote control.

När alla steg är avklarade sammanfattas de gjorda valen som en numrerad checklista i terminalen, till exempel:

plaintext
1. ✅ Logged in to account: acme
2. ✅ Sync folder selected (~/Brick)
3. ✅ Folders selected (all)
4. ✅ Remote file access enabled (root folder: ~)
5. ✅ Done and ready to go!

Dessa val sparas i konfigurationsfilen och används framöver när du kör brick sync.

Ladda upp och ner

brick upload och brick download överför en enskild fil eller ett helt mappträd vid sidan av den tvåvägssynkade mappen - praktiskt för en engångsöverföring, utan att först behöva sätta upp (eller röra) en synkmapp:

bash
brick upload [-r] [-s] [--overwrite] <lokal-fil|lokal-mapp> [fjärrsökväg|uuid]
brick download [-r] [-s] <uuid|fjärrsökväg> [lokal-målmapp]

Båda kommandona accepterar antingen ett nod-UUID eller en sökväg där en sådan behövs:

  • Källan till download och målet för upload kan vara ett nod-UUID (till exempel kopierat från Brick-webappen) eller en sökväg som /Dokument/Rapporter - som tolkas från kontots rotmapp på precis samma sätt som i webappen.
  • Målet för upload kan utelämnas helt, och filen eller mappen hamnar då i kontots rotmapp. Anger du en sökväg som inte finns skapas den åt dig.
  • Målmappen för download kan också utelämnas, och filerna hamnar då i den mapp du står i. Mappen skapas om den inte redan finns.

Hela mappar. En mapp som källa kräver -r/--recursive - utan flaggan gör brick ingenting och avslutas med felkod, i stället för att gissa att du menade hela mappträdet. Med -r skriver brick först ut en sammanfattning (Uploading 42 files in 6 folders (18.2 MB)...) innan något överförs, och visar sedan en förloppsindikator per fil.

Fel under en överföring avbryter inte hela körningen - brick fortsätter med resterande filer, listar sedan alla misslyckanden på slutet och avslutas med felkod om något gick fel.

Konflikter.

  • download skriver över en befintlig lokal fil med samma namn.
  • upload skapar som standard en kopia (rapport.pdf → rapport (copy).pdf), precis som Brick-webappen gör när namnet redan är upptaget av en fil i samma mapp. Lägg till --overwrite för att i stället ersätta innehållet i den befintliga filen i molnet.

Tyst läge. -s/--silent döljer allt utom fel - ingen inledande sammanfattning, inga förloppsindikatorer och ingen avslutande rad. Användbart i ett cron-jobb eller skript som bara bryr sig om felkoden.

Remote control

Remote control ger dig möjlighet att bläddra i och komma åt filer på den här enheten på distans, direkt via Brick-webappen - utan att de filerna behöver ligga i din synkade mapp eller laddas upp till molnet.

Funktionen aktiveras antingen genom att svara ja på frågan under onboardingen vid första körningen, eller genom att lägga till flaggan -r/--remote-control vid varje enskild körning:

bash
brick sync -r

Väljer du att aktivera det permanent under onboardingen sparas det i konfigurationsfilen (remoteControl: true), och du behöver då inte ange -r igen - flaggan fungerar dock fortfarande som en engångsaktivering om du tackade nej från början men vill slå på den för en enstaka körning.

Som standard exponeras din hemmapp. Vill du ge fjärråtkomst till fler mappar - eller andra mappar än hemmappen - använder du --agent-root, som kan upprepas för att lägga till flera mappar:

bash
brick sync --agent-root ~/Dokument --agent-root /mnt/extern-disk

Anslutningen mellan enheten och Brick-webappen upprättas via en säker tunnel mot Bricks API så själva enheten behöver inte vara nåbar utifrån eller ha några öppna portar.

Konfigurationsfil

Brick sparar sina inställningar i en YAML-fil, ~/.config/brick/config.yaml.

Filen skapas automatiskt (med rättigheterna 0600, det vill säga bara läsbar av dig) första gången du kör brick sync, och innehåller följande fält:

FältBeskrivning
clientIdEtt unikt ID som identifierar den här installationen av klienten.
accessTokenAccess-token för det inloggade kontot.
refreshTokenRefresh-token, används för att förnya accessToken när den går ut.
idTokenID-token från inloggningen.
activeAccountIdVilket konto som för närvarande är aktivt (styrs via brick switch-accounts).
accountsEn karta över varje konto du någonsin synkat, nyckeln till varje post är kontots ID.
agentRootsLista över extra mappar som exponeras för fjärrklienter när remote control är aktiverat.
remoteControlOm true är remote control alltid påslaget, utan att -r behöver anges vid varje körning.

Varje post under accounts har i sin tur egna inställningar, kopplade till just det kontot:

FältBeskrivning
storageSyncFolderDen lokala mapp som synkas mot Brick för det här kontot.
excludeDirsLista över undermappar (relativt storageSyncFolder) som är uteslutna från synk, se selektiv synk.

Filen kan redigeras för hand om du vill, men de flesta inställningarna sätts enklast genom att köra motsvarande kommando (t.ex. brick sync --selective-sync eller onboarding-guiden) i stället.

Konflikthantering

Vid första körningen

Om du väljer en synkmapp som redan innehåller filer när du synkar mot ett konto som också redan har filer i molnet, kan samma fil av naturliga skäl finnas på båda ställena utan att Brick ännu vet om de hör ihop. Du får då välja hur sådana dubbletter ska hanteras, en gång, innan den första synkroniseringen körs:

plaintext
The picked folder contains files. How should possible conflicts be
handled on first sync?

Conflict resolution
> Overwrite any duplicate files on this device.
  Overwrite any duplicate files on Brick.
  Make a copy of any duplicate files (so nothing is lost).
  • Overwrite any duplicate files on this device - filen i molnet vinner och laddas ner, den lokala filen skrivs över.
  • Overwrite any duplicate files on Brick - den lokala filen vinner och laddas upp, filen i molnet skrivs över.
  • Make a copy of any duplicate files - inget skrivs över. Den lokala filen döps om (så att den får ett unikt namn) och båda versionerna bevaras.

Valet gäller enbart den allra första synkroniseringen av just den mappen - när en fil väl är synkad en gång känner Brick till dess historik och det här steget behövs inte igen.

Vid framtida körningar

Efter den första synkroniseringen håller Brick reda på varje fils senaste kända lokala och fjärr-tillstånd (hash respektive ETag). Det gör att den kan avgöra exakt vad som hänt sen sist:

  • Har filen bara ändrats på ena sidan (lokalt eller i molnet) speglas ändringen automatiskt till den andra sidan - utan att fråga dig.
  • Har filen tagits bort på ena sidan och är oförändrad på den andra, speglas borttagningen till den andra sidan också.
  • Har filen ändrats på båda sidor sedan den senast synkades - en genuin konflikt - vinner alltid versionen i molnet, och den lokala ändringen skrivs över.

Det här sker helt automatiskt i bakgrunden, både när Brick körs i förgrunden och som daemon (brick sync -d).

Last updated:

Released under the MIT License.