1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-22 22:59:43 +02:00
documize/sdk/documize/main.go
2016-07-07 18:54:16 -07:00

86 lines
2.4 KiB
Go

// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
package main
import (
"flag"
"fmt"
"os"
sdk "github.com/documize/community/sdk"
)
func main() {
flagSet := flag.NewFlagSet("documize client flags", flag.ExitOnError)
url, auth, folder, action := flagSet.String("api", os.Getenv("DOCUMIZEAPI"),
"the url of the endpoint (defaults to environment variable DOCUMIZEAPI)"), //e.g. http://localhost:5002
flagSet.String("auth", os.Getenv("DOCUMIZEAUTH"), //e.g. demo1:mick@jagger.com:demo123
"the authorization credentials in the form domain:email:password (defaults to the environment variable DOCUMIZEAUTH)"),
flagSet.String("folder", "", "the Documize folder to use"),
flagSet.String("action", "load", "the Documize action to take")
if err := flagSet.Parse(os.Args[1:]); err != nil {
fmt.Println("unable to parse Documize arguments:", err)
os.Exit(1)
}
if *url == "" {
fmt.Println("Please set the environment variable DOCUMIZEAPI or use the -api flag")
os.Exit(1)
}
if *auth == "" {
fmt.Println("Please set the environment variable DOCUMIZEAUTH or use the -auth flag")
os.Exit(1)
}
c, e := sdk.NewClient(*url, *auth)
if e != nil {
fmt.Println("unable to create Documize SDK client for", *auth, "Error:", e)
os.Exit(1)
}
switch *action {
case "load":
folderID := checkFolder(c, folder)
for _, arg := range flagSet.Args() {
_, ce := c.LoadFile(folderID, arg)
if ce == nil {
fmt.Println("Loaded file " + arg + " into Documize folder " + *folder)
} else {
fmt.Println("Failed to load file " + arg + " into Documize folder " + *folder + " Error: " + ce.Error())
}
}
}
}
func checkFolder(c *sdk.Client, folder *string) string {
if *folder == "" {
*folder = os.Getenv("DOCUMIZEFOLDER")
if *folder == "" {
fmt.Println("Please set the environment variable DOCUMIZEFOLDER or use the -folder flag")
os.Exit(1)
}
}
fids, err := c.GetNamedFolderIDs(*folder)
if err != nil {
fmt.Println("Error reading folder IDs: " + err.Error())
os.Exit(1)
}
if len(fids) != 1 {
fmt.Println("There is no single folder called: " + *folder)
os.Exit(1)
}
return fids[0]
}