11 fprint(2, "usage: smugfs [-k keypattern] [-m mtpt] [-s srv]\n");
12 threadexitsall("usage");
23 up = auth_getuserpasswd(auth_getkey,
24 "proto=pass role=client server=smugmug.com "
25 "user? !password? %s", keypattern);
27 sysfatal("cannot get username/password: %r");
29 v = ncsmug("smugmug.login.withPassword",
30 "EmailAddress", up->user,
31 "Password", up->passwd,
34 sysfatal("login failed: %r");
36 memset(up->user, 'X', strlen(up->user));
37 memset(up->passwd, 'X', strlen(up->passwd));
40 sessid = jstring(jwalk(v, "Login/Session/id"));
42 sysfatal("no session id");
43 sessid = estrdup(sessid);
44 s = jstring(jwalk(v, "Login/User/NickName"));
46 sysfatal("no nick name");
48 sysfatal("bad nick name");
49 userinfo = jincref(jwalk(v, "Login"));
55 threadmain(int argc, char **argv)
72 mtpt = EARGF(usage());
75 name = EARGF(usage());
78 keypattern = EARGF(usage());
87 if(name == nil && mtpt == nil)
91 * Check twice -- if there is an exited smugfs instance
92 * mounted there, the first access will fail but unmount it.
94 if(mtpt && access(mtpt, AEXIST) < 0 && access(mtpt, AEXIST) < 0)
95 sysfatal("mountpoint %s does not exist", mtpt);
97 fmtinstall('H', encodefmt);
98 fmtinstall('[', encodefmt); // base-64
99 fmtinstall('J', jsonfmt);
100 fmtinstall('M', dirmodefmt);
101 fmtinstall('T', timefmt);
102 fmtinstall('U', urlencodefmt);
106 threadpostmountsrv(&xsrv, name, mtpt, 0);