refactor!: rename oo-cli → oo, split library by domain, relocate applications
BREAKING:
- Binary renamed oo-cli → oo; install path is now
github.com/eslider/go-onlyoffice/cmd/oo.
- Former internal/cli tree removed; cobra commands live in cmd/oo/ as
package main, split by domain (calendar.go, crm.go, tasks.go, apps.go,
common.go, main.go).
- internal/applications moved to cmd/oo/applications/ (CV-specific workflow;
not a library feature).
- examples/applications removed (it depended on an internal package).
Library split (mechanical, zero API surface change):
- client.go — Client, Credentials, Defaults, env helpers, NewClient.
- request.go — Request, Query, Time, Token, MetaResponse, Permissions.
- auth.go — Authenticate/AuthenticateContext/InvalidateToken.
- http.go — transport + ResponseArray/ResponseObject/postFormObject/
putFormObject/deleteObject/unmarshalResponseObject (renamed
from httpx.go).
- projects.go, tasks.go, users.go, calendar.go, crm.go, files.go — typed
/ untyped domain methods. tasks_extra.go merged into tasks.go.
- onlyoffice.go deleted (content redistributed).
AGENTS.md, CHANGELOG.md, README.md updated accordingly.
Made-with: Cursor
This commit is contained in:
@@ -1,54 +0,0 @@
|
||||
// Package main shows how to drive the internal applications package — the same
|
||||
// logic that powers `oo-cli applications-sync` — directly from Go code.
|
||||
//
|
||||
// export ONLYOFFICE_URL="https://your-instance.onlyoffice.com"
|
||||
// export ONLYOFFICE_USER="admin@example.com"
|
||||
// export ONLYOFFICE_PASS="your-password"
|
||||
// go run ./examples/applications /path/to/cv/applications
|
||||
//
|
||||
// Without --apply equivalent, it prints a summary but performs no writes.
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
onlyoffice "github.com/eslider/go-onlyoffice"
|
||||
"github.com/eslider/go-onlyoffice/internal/applications"
|
||||
)
|
||||
|
||||
func main() {
|
||||
if len(os.Args) < 2 {
|
||||
fmt.Fprintln(os.Stderr, "usage: applications <applications-root>")
|
||||
os.Exit(2)
|
||||
}
|
||||
root := os.Args[1]
|
||||
|
||||
creds := onlyoffice.GetEnvironmentCredentials()
|
||||
if creds.Url == "" {
|
||||
fmt.Fprintln(os.Stderr, "ONLYOFFICE_URL is not set")
|
||||
os.Exit(1)
|
||||
}
|
||||
client := onlyoffice.NewClient(creds)
|
||||
|
||||
paths, err := applications.Discover(root)
|
||||
if err != nil {
|
||||
log.Fatalf("discover: %v", err)
|
||||
}
|
||||
fmt.Printf("discovered %d application READMEs under %s\n", len(paths), root)
|
||||
|
||||
var apps []applications.Data
|
||||
for _, p := range paths {
|
||||
d, err := applications.ParseReadme(p)
|
||||
if err != nil {
|
||||
log.Printf("parse %s: %v", p, err)
|
||||
continue
|
||||
}
|
||||
apps = append(apps, d)
|
||||
}
|
||||
|
||||
stats := applications.Sync(context.Background(), client, apps, true /*dryRun*/, true /*verbose*/)
|
||||
fmt.Printf("\ndry-run stats: %+v\n", stats)
|
||||
}
|
||||
Reference in New Issue
Block a user