Skip to content

Commit c912038

Browse files
author
Jack Tang
committed
FIX: wrong usage message
1 parent e2e4f47 commit c912038

File tree

4 files changed

+107
-106
lines changed

4 files changed

+107
-106
lines changed

cmd/tusc.go

+16-15
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
11
package main
22

33
import (
4-
"github.com/jackhftang/tusc/internal"
5-
"github.com/jackhftang/tusc/internal/util"
6-
"os"
4+
"github.com/jackhftang/tusc/internal/client"
5+
"github.com/jackhftang/tusc/internal/server"
6+
"github.com/jackhftang/tusc/internal/util"
7+
"os"
78
)
89

910
const usage = `Usage:
1011
tusc (server|s) [options]
11-
tusc (client|c) <file> [<url>] [options]
12+
tusc (client|c) <url> <file> [options]
1213
tusc --help`
1314

1415
func main() {
15-
if len(os.Args) < 2 {
16-
util.ExitWithMessages("No command", usage)
17-
}
18-
switch cmd := os.Args[1]; cmd {
19-
case "server", "s":
20-
internal.Server()
21-
case "client", "c":
22-
internal.Client()
23-
default:
24-
util.ExitWithMessages("Unknown command: "+cmd, usage)
25-
}
16+
if len(os.Args) < 2 {
17+
util.ExitWithMessages("No command", usage)
18+
}
19+
switch cmd := os.Args[1]; cmd {
20+
case "server", "s":
21+
server.Server()
22+
case "client", "c":
23+
client.Client()
24+
default:
25+
util.ExitWithMessages("Unknown command: "+cmd, usage)
26+
}
2627
}

internal/client.go

-90
This file was deleted.

internal/client/client.go

+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package client
2+
3+
import (
4+
"fmt"
5+
"github.com/docopt/docopt-go"
6+
"github.com/eventials/go-tus"
7+
"github.com/eventials/go-tus/leveldbstore"
8+
"github.com/jackhftang/tusc/internal/util"
9+
"net/http"
10+
"os"
11+
)
12+
13+
const clientUsage = `tusc client
14+
15+
Usage:
16+
tusc (client|c) <url> <file> [options]
17+
tusc (client|c) --help
18+
19+
Options:
20+
-r --resumable Save meta data for resumable uploads
21+
--store PATH Path to save meta data for resume [default: ./.tusc]
22+
--chuck-size BYTE Size of chucks of file [default: 2097152]
23+
--override-patch-method Sending a POST request instead of PATCH [default: false]
24+
`
25+
26+
type ClientConf struct {
27+
file string
28+
url string
29+
resume bool
30+
}
31+
32+
func Client() {
33+
var err error
34+
35+
var conf ClientConf
36+
arguments, _ := docopt.ParseDoc(clientUsage)
37+
conf.file, _ = arguments.String("<file>")
38+
conf.url, _ = arguments.String("<url>")
39+
conf.resume = util.GetBool(arguments, "--resumable")
40+
41+
// open file
42+
f, err := os.Open(conf.file)
43+
if err != nil {
44+
util.ExitWithMessages("Cannot open file: " + conf.file)
45+
}
46+
defer f.Close()
47+
48+
// create the tus client
49+
var store tus.Store
50+
if conf.resume {
51+
path := util.GetString(arguments, "--store")
52+
store, err = leveldbstore.NewLeveldbStore(path)
53+
if err != nil {
54+
util.ExitWithMessages("Cannot Open "+path, clientUsage)
55+
}
56+
}
57+
58+
client, _ := tus.NewClient(conf.url, &tus.Config{
59+
ChunkSize: util.GetInt64(arguments, "--chuck-size"),
60+
OverridePatchMethod: util.GetBool(arguments, "--override-patch-method"),
61+
Resume: conf.resume,
62+
Store: store,
63+
Header: make(http.Header),
64+
HttpClient: nil,
65+
})
66+
67+
// create an upload from a file.
68+
var upload *tus.Upload
69+
if upload, err = tus.NewUploadFromFile(f); err != nil {
70+
util.ExitWithMessages("Cannot create upload from file: " + f.Name())
71+
}
72+
73+
// create the uploader.
74+
var uploader *tus.Uploader
75+
if conf.resume {
76+
uploader, err = client.CreateOrResumeUpload(upload)
77+
} else {
78+
uploader, err = client.CreateUpload(upload)
79+
}
80+
if err != nil {
81+
util.ExitWithMessages("Failed to upload", err.Error())
82+
}
83+
84+
fmt.Println(uploader.Url())
85+
86+
// start the uploading process.
87+
if err = uploader.Upload(); err != nil {
88+
util.ExitWithMessages("Upload incomplete", err.Error())
89+
}
90+
}

internal/server.go renamed to internal/server/server.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package internal
1+
package server
22

33
import (
44
"fmt"

0 commit comments

Comments
 (0)