Documentation ¶
Index ¶
- Constants
- Variables
- func CopyOptionsFromKeysIfNotSet(fromPtr, toPtr *Options, alreadySetKeys map[string]bool)
- func FprintfShadow(f io.Writer, fmt_ string, args ...interface{})
- func JSONStringifySiftedCLITags(from interface{}, rcSourcePath string, defined map[string]bool) (repr string, err error)
- func NonEmptyStrings(v ...string) (splits []string)
- func NonEmptyTrimmedStrings(v ...string) (splits []string)
- func NotExist(err error) bool
- func PrintfShadow(fmt_ string, args ...interface{})
- func ReadFullFile(p string) (clauses []string, err error)
- func ResourceMappings(rcPath string) (parsed map[string]interface{}, err error)
- func RetrieveRefreshToken(ctx context.Context, context *config.Context) (string, error)
- func ShowAllDescriptions()
- func ShowDescription(topic string)
- func ShowDescriptions(topics ...string)
- func SiftCliTags(cs *CliSifter) string
- func StdoutPrintf(fmt_ string, args ...interface{})
- type AccountType
- type Agreement
- type ByPrecedence
- type Change
- type CliSifter
- type Commands
- func (g *Commands) About(mask int) (err error)
- func (g *Commands) Copy(byId bool) error
- func (g *Commands) DeInit() error
- func (g *Commands) Delete(byId bool) (err error)
- func (g *Commands) DeleteByMatch() error
- func (g *Commands) Diff() (err error)
- func (g *Commands) EditDescription(byId bool) (composedErr error)
- func (g *Commands) EmptyTrash() error
- func (g *Commands) Fetch() (err error)
- func (g *Commands) FetchById() (err error)
- func (g *Commands) FetchMatches() (err error)
- func (g *Commands) FileIssue() error
- func (g *Commands) FixClashes(byId bool) error
- func (g *Commands) Id() (err error)
- func (g *Commands) Init() error
- func (g *Commands) List(byId bool) error
- func (g *Commands) ListClashes(byId bool) error
- func (g *Commands) ListMatches() error
- func (g *Commands) ListShared() (err error)
- func (g *Commands) Move(byId bool) error
- func (g *Commands) NewFile() (err error)
- func (g *Commands) NewFolder() (err error)
- func (g *Commands) Open(ot OpenType) error
- func (g *Commands) Prune() (err error)
- func (c *Commands) Publish(byId bool) (err error)
- func (g *Commands) Pull() error
- func (g *Commands) PullAllStarred() error
- func (g *Commands) PullById() error
- func (g *Commands) PullMatchLike() error
- func (g *Commands) PullPiped(byId bool) (err error)
- func (g *Commands) Push() (err error)
- func (g *Commands) PushPiped() (err error)
- func (g *Commands) QR(byId bool) error
- func (g *Commands) QuotaStatus(query int64) (status int, err error)
- func (g *Commands) Rename(byId bool) error
- func (c *Commands) Share(byId bool) (err error)
- func (g *Commands) Star(byId bool) error
- func (g *Commands) Stat() error
- func (g *Commands) StatById() error
- func (g *Commands) Touch(byId bool) (err error)
- func (g *Commands) TouchByMatch() (err error)
- func (g *Commands) Trash(byId bool) (err error)
- func (g *Commands) TrashByMatch() error
- func (g *Commands) UnStar(byId bool) error
- func (c *Commands) Unpublish(byId bool) error
- func (c *Commands) Unshare(byId bool) (err error)
- func (g *Commands) Untrash(byId bool) (err error)
- func (g *Commands) UntrashByMatch() error
- func (g *Commands) Url(byId bool) error
- type CrudValue
- type File
- type OpenType
- type Operation
- type Options
- type ParentFile
- type Remote
- func (r *Remote) About() (about *drive.About, err error)
- func (r *Remote) Delete(id string) error
- func (r *Remote) Download(id string, exportURL string) (io.ReadCloser, error)
- func (r *Remote) EmptyTrash() error
- func (r *Remote) FindBackPaths(id string) (backPaths []string, err error)
- func (r *Remote) FindById(id string) (file *File, err error)
- func (r *Remote) FindByIdM(id string) chan *File
- func (r *Remote) FindByParentId(parentId string, hidden bool) chan *File
- func (r *Remote) FindByParentIdTrashed(parentId string, hidden bool) chan *File
- func (r *Remote) FindByPath(p string) (file *File, err error)
- func (r *Remote) FindByPathM(p string) chan *File
- func (r *Remote) FindByPathShared(p string) (chan *File, error)
- func (r *Remote) FindByPathTrashed(p string) (file *File, err error)
- func (r *Remote) FindByPathTrashedM(p string) chan *File
- func (r *Remote) FindMatches(mq *matchQuery) (chan *File, error)
- func (r *Remote) FindStarred(trashed, hidden bool) (chan *File, error)
- func (r *Remote) Publish(id string) (string, error)
- func (r *Remote) Touch(id string) (*File, error)
- func (r *Remote) Trash(id string) error
- func (r *Remote) Unpublish(id string) error
- func (r *Remote) Untrash(id string) error
- func (r *Remote) UpsertByComparison(args *upsertOpt) (f *File, err error)
- type Role
Constants ¶
View Source
const ( Barely = iota AlmostExceeded HalfwayExceeded Exceeded Unknown )
View Source
const ( AboutNone = 1 << iota AboutQuota AboutFileSizes AboutFeatures )
View Source
const ( SelectSrc destination = 1 << iota SelectDest )
View Source
const ( DiffNone = 1 << iota DiffUnified )
View Source
const ( FetchById = iota FetchMatches Fetch )
View Source
const ( AboutKey = "about" AllKey = "all" CopyKey = "copy" DeleteKey = "delete" DeInitKey = "deinit" EditDescriptionKey = "edit-description" EditDescriptionShortKey = "edit-desc" DiffKey = "diff" AddressKey = "address" EmptyTrashKey = "emptytrash" FeaturesKey = "features" HelpKey = "help" InitKey = "init" LinkKey = "Link" ListKey = "list" DuKey = "du" Md5sumKey = "md5sum" MoveKey = "move" OcrKey = "ocr" ConvertKey = "convert" OSLinuxKey = "linux" PullKey = "pull" PipedKey = "piped" PushKey = "push" PubKey = "pub" QRLinkKey = "qr" RenameKey = "rename" QuotaKey = "quota" StatKey = "stat" TouchKey = "touch" TrashKey = "trash" UntrashKey = "untrash" UnpubKey = "unpub" VersionKey = "version" NewKey = "new" IndexKey = "index" PruneKey = "prune" StarKey = "star" UnStarKey = "unstar" CoercedMimeKeyKey = "coerced-mime" ExportsKey = "export" ExportsDirKey = "exports-dir" NoClobberKey = "no-clobber" RecursiveKey = "recursive" IgnoreChecksumKey = "ignore-checksum" ExcludeOpsKey = "exclude-ops" IgnoreConflictKey = "ignore-conflict" IgnoreNameClashesKey = "ignore-name-clashes" ClashesKey = "clashes" CommentStr = "#" DepthKey = "depth" EmailsKey = "emails" EmailMessageKey = "emailMessage" ForceKey = "force" QuietKey = "quiet" IdKey = "id" QuitShortKey = "q" YesShortKey = "Y" QuitLongKey = "quit" MatchesKey = "matches" HiddenKey = "hidden" Md5Key = "md5" NoPromptKey = "no-prompt" SizeKey = "size" NameKey = "name" OpenKey = "open" OriginalNameKey = "oname" ModTimeKey = "modt" LastViewedByMeTimeKey = "lvt" AccountTypeKey = "account-type" RoleKey = "role" TypeKey = "type" TrashedKey = "trashed" SkipMimeKeyKey = "skip-mime" MatchMimeKeyKey = "exact-mime" ExactTitleKey = "exact-title" MatchOwnerKey = "match-owner" ExactOwnerKey = "exact-owner" NotOwnerKey = "skip-owner" SortKey = "sort" FolderKey = "folder" MimeKey = "mime-key" PageSizeKey = "pagesize" DriveRepoRelPath = "github.com/odeke-em/drive" UrlKey = "url" ReportIssueKey = "report-issue" IssueTitleKey = "title" IssueBodyKey = "body" SkipContentCheckKey = "skip-content-check" )
View Source
const ( DescAbout = "print out information about your Google drive" DescAll = "print out the entire help section" DescAllStarred = "all the starred files" DescCopy = "copy remote paths to a destination" DescDelete = "deletes the items permanently. This operation is irreversible" DescDiff = "compares local files with their remote equivalent" DescEdit = "edit the attributes of a file" DescEmptyTrash = "permanently cleans out your trash" DescExcludeOps = "exclude operations" DescFeatures = "returns information about the features of your drive" DescIndex = "fetch indices from remote" DescHelp = "Get help for a topic" DescInit = "initializes a directory and authenticates user" DescDeInit = "removes the user's credentials and initialized files" DescList = "lists the contents of remote path" DescMove = "move files/folders" DescPiped = "get content in from standard input (stdin)" DescQuota = "prints out information related to your quota space" DescPublish = "publishes a file and prints its publicly available url" DescRename = "renames a file/folder" DescPull = "pulls remote changes from Google Drive" DescPruneIndices = "remove stale indices" DescPush = "push local changes to Google Drive" DescStar = "star files" DescUnStar = "unstar files" DescStat = "display information about a file" DescTouch = "updates a remote file's modification time to that currently on the server" DescTrash = "moves files to trash" DescUntrash = "restores files from trash to their original locations" DescUnpublish = "revokes public access to a file" DescVersion = "prints the version" DescMd5sum = "prints a list compatible with md5sum(1)" DescDu = "similar to util `du` gives you disk usage" DescAccountTypes = "\n\t* anyone.\n\t* user.\n\t* domain.\n\t* group" DescRoles = "\n\t* owner.\n\t* reader.\n\t* writer.\n\t* commenter." DescExplicitylPullExports = "explicitly pull exports" DescIgnoreChecksum = "avoids computation of checksums as a final check." + "\nUse cases may include:\n\t* when you are low on bandwidth e.g SSHFS." + "\n\t* Are on a low power device" DescIgnoreConflict = "turns off the conflict resolution safety" DescIgnoreNameClashes = "ignore name clashes" DescSort = "sort items in the order\n\t* md5.\n\t* name.\n\t* size.\n\t* type.\n\t* version" DescSkipMime = "skip elements with mimeTypes derived from these extensions" DescMatchMime = "get elements with the exact mimeTypes derived from extensions" DescMatchTitle = "elements with matching titles" DescExactTitle = "get elements with the exact titles" DescMatchOwner = "elements with matching owners" DescExactOwner = "elements with the exact owner" DescNotOwner = "ignore elements owned by these users" DescNew = "create a new file/folder" DescAllIndexOperations = "perform all the index related operations" DescOpen = "open a file in the appropriate filemanager or default browser" DescUrl = "returns the remote URL of each file" DescVerbose = "show step by step information verbosely" DescFixClashes = "fix clashes by renaming files" DescListClashes = "list clashes" DescDescription = "set the description" DescQR = "open up the QR code for specified files" DescStarred = "operate only on starred files" DescUnifiedDiff = "unified diff" DescDiffBaseLocal = "when set uses local as the base other remote will be used as the base" DescClashesOpById = "operate on clashes by id instead of by path" DescIssueBody = "the detailed description of the issue being filed" DescIssueTitle = "the title of the issue being filed" DescReportIssue = "report an issue to the project's issue tracker" DescId = "retrieve the fileId for the specified paths" DescSkipContentCheck = "skip diffing actual body content, show only name, time, type changes" )
View Source
const ( CLIOptionDescription = "description" CLIOptionExplicitlyExport = "explicitly-export" CLIOptionIgnoreChecksum = "ignore-checksum" CLIOptionIgnoreConflict = "ignore-conflict" CLIOptionIgnoreNameClashes = "ignore-name-clashes" CLIOptionExcludeOperations = "exclude-ops" CLIOptionId = "id" CLIOptionNoClobber = "no-clobber" CLIOptionNotify = "notify" CLIOptionSkipMime = "skip-mime" CLIOptionExactMime = "exact-mime" CLIOptionMatchMime = "match-mime" CLIOptionExactTitle = "exact-title" CLIOptionMatchTitle = "match-title" CLIOptionExactOwner = "exact-owner" CLIOptionMatchOwner = "match-owner" CLIOptionNotOwner = "skip-owner" CLIOptionPruneIndices = "prune" CLIOptionAllIndexOperations = "all-ops" CLIOptionVerboseKey = "verbose" CLIOptionVerboseShortKey = "v" CLIOptionOpen = "open" CLIOptionWebBrowser = "web-browser" CLIOptionFileBrowser = "file-browser" CLIOptionDirectories = "directories" CLIOptionFiles = "files" CLIOptionLongFmt = "long" CLIOptionFixClashesKey = "fix-clashes" CLIOptionPiped = "piped" CLIOptionStarred = "starred" CLIOptionAllStarred = "all" CLIOptionUnified = "unified" CLIOptionUnifiedShortKey = "u" CLIOptionDiffBaseLocal = "base-local" CLIOptionFixClashes = "fix" CLIOptionListClashes = "list" )
View Source
const ( GoogleApiClientIdEnvKey = "GOOGLE_API_CLIENT_ID" GoogleApiClientSecretEnvKey = "GOOGLE_API_CLIENT_SECRET" DriveGoMaxProcsKey = "DRIVE_GOMAXPROCS" GoMaxProcsKey = "GOMAXPROCS" )
View Source
const ( TBool = iota TRune TInt TInt64 TUInt TString TStringArray TUInt64 )
View Source
const ( InTrash = 1 << iota Folder Owners Minimal Starred NonFolder DiskUsageOnly CurrentVersion )
View Source
const ( MimeTypeJoiner = "-" RemoteDriveRootPath = "My Drive" RemoteSeparator = "/" FmtTimeString = "2006-01-02T15:04:05.000Z" MsgClashesFixedNowRetry = "Clashes were fixed, please retry the operation" MsgErrFileNotMutable = "File not mutable" DriveIgnoreSuffix = ".driveignore" DriveIgnoreNegativeLookAheadToken = "!" )
View Source
const ( TypeNone pullType = 1 << iota TypeAll TypeById TypeMatches TypeStarred TypeAllStarred )
View Source
const ( // OAuth 2.0 OOB redirect URL for authorization. RedirectURL = "urn:ietf:wg:oauth:2.0:oob" // OAuth 2.0 full Drive scope used for authorization. DriveScope = "https://www.googleapis.com/auth/drive" // OAuth 2.0 access type for offline/refresh access. AccessType = "offline" // Google Drive webpage host DriveResourceHostURL = "https://googledrive.com/host/" // Google Drive entry point DriveResourceEntryURL = "https://drive.google.com" DriveRemoteSep = "/" )
View Source
const ( OptNone = 1 << iota OptConvert OptOCR OptUpdateViewedDate OptContentAsIndexableText OptPinned OptNewRevision )
View Source
const ( Notify )
View Source
const ( AttrUnknown = iota AttrSize AttrModTime AttrLastViewedByMeTime AttrVersion AttrIsDir AttrMd5Checksum AttrMimeType AttrName )
View Source
const ( DifferNone = 0 DifferDirType = 1 << iota DifferMd5Checksum DifferModTime DifferSize )
View Source
const ( Not fuzziness = 1 << iota Like NotIn Is )
View Source
const ( Or joiner = 1 << iota And )
View Source
const (
DefaultMaxTraversalDepth = -1
)
View Source
const (
)
View Source
const (
DesktopExtension = "desktop"
)
View Source
const (
DriveFolderMimeType = "application/vnd.google-apps.folder"
)
View Source
const (
DriveResourceConfiguration = ".driverc"
)
View Source
const (
InfiniteDepth = -1
)
View Source
const (
MaxFailedRetryCount = uint32(20) // Arbitrary value
)
View Source
const MaxFileSize = 50 * 1024 * 1024
MaxFileSize is the max number of bytes we can accept for diffing (Arbitrary value)
View Source
const (
ProjectNewIssueUrl = "https://github.com/odeke-em/drive/issues/new"
)
View Source
const Version = "0.3.5"
Variables ¶
View Source
var ( HomeEnvKey = "HOME" HomeShellEnvKey = "$" + HomeEnvKey FsHomeDir = os.Getenv(HomeEnvKey) )
View Source
var ( ErrPathNotExists = errors.New("remote path doesn't exist") ErrNetLookup = errors.New("net lookup failed") ErrClashesDetected = fmt.Errorf("clashes detected. Use `%s` to override this behavior or `%s` to try fixing this", CLIOptionIgnoreNameClashes, CLIOptionFixClashesKey) ErrClashFixingAborted = fmt.Errorf("clash fixing aborted") ErrGoogleApiInvalidQueryHardCoded = errors.New("googleapi: Error 400: Invalid query, invalid") )
View Source
var ( UnescapedPathSep = fmt.Sprintf("%c", os.PathSeparator) EscapedPathSep = url.QueryEscape(UnescapedPathSep) )
View Source
var Aliases = createAndRegisterAliases()
View Source
var BigFileSize = int64(1024 * 1024 * 400)
Arbitrary value. TODO: Get better definition of BigFileSize.
View Source
var BytesPerKB = float64(1024)
View Source
var DefaultMaxProcs = runtime.NumCPU()
View Source
var (
ErrNoContext = errors.New("not in a drive context")
)
View Source
var ErrPathNotDir = errors.New("not a directory")
View Source
var (
ErrRcNoKeysMatched = errors.New("rcMapping: no keys matched")
)
View Source
var ( // ErrRejectedTerms is empty "" because messages might be too // verbose to affirm a rejection that a user has already seen ErrRejectedTerms = errors.New("") )
View Source
var (
PermanentDeletionNoPromptError = fmt.Errorf("%q is set yet performing a permanent deletion. Please see issue https://github.com/odeke-em/drive/issues/448", NoPromptKey)
)
View Source
var Ruler = strings.Repeat("*", 4)
Functions ¶
func CopyOptionsFromKeysIfNotSet ¶ added in v0.3.2
func FprintfShadow ¶ added in v0.3.1
func JSONStringifySiftedCLITags ¶ added in v0.3.2
func NonEmptyStrings ¶
func NonEmptyTrimmedStrings ¶ added in v0.2.0
func PrintfShadow ¶ added in v0.3.1
func PrintfShadow(fmt_ string, args ...interface{})
func ReadFullFile ¶ added in v0.2.7
func ResourceMappings ¶ added in v0.3.2
func RetrieveRefreshToken ¶
func ShowAllDescriptions ¶
func ShowAllDescriptions()
func ShowDescription ¶
func ShowDescription(topic string)
func ShowDescriptions ¶ added in v0.2.4
func ShowDescriptions(topics ...string)
func SiftCliTags ¶ added in v0.3.2
func StdoutPrintf ¶ added in v0.3.1
func StdoutPrintf(fmt_ string, args ...interface{})
Types ¶
type AccountType ¶
type AccountType int
const ( UnknownAccountType AccountType = 1 << iota Anyone User Domain Group )
func (*AccountType) String ¶
func (a *AccountType) String() string
type ByPrecedence ¶
type ByPrecedence []*Change
func (ByPrecedence) Len ¶
func (cl ByPrecedence) Len() int
func (ByPrecedence) Less ¶
func (cl ByPrecedence) Less(i, j int) bool
func (ByPrecedence) Swap ¶
func (cl ByPrecedence) Swap(i, j int)
type Change ¶
type Commands ¶
type Commands struct {
// contains filtered or unexported fields
}
func (*Commands) DeleteByMatch ¶ added in v0.2.0
func (*Commands) EditDescription ¶ added in v0.3.1
func (*Commands) EmptyTrash ¶
func (*Commands) FetchMatches ¶ added in v0.2.5
func (*Commands) FixClashes ¶ added in v0.3.5
func (*Commands) ListClashes ¶ added in v0.3.5
func (*Commands) ListMatches ¶ added in v0.1.7
func (*Commands) ListShared ¶ added in v0.2.1
func (*Commands) Pull ¶
Pull from remote if remote path exists and in a god context. If path is a directory, it recursively pulls from the remote if there are remote changes. It doesn't check if there are remote changes if isForce is set.
func (*Commands) PullAllStarred ¶ added in v0.3.3
func (*Commands) PullMatchLike ¶ added in v0.3.3
func (*Commands) Push ¶
Pushes to remote if local path exists and in a gd context. If path is a directory, it recursively pushes to the remote if there are local changes. It doesn't check if there are local changes if isForce is set.
func (*Commands) TouchByMatch ¶
func (*Commands) TrashByMatch ¶
func (*Commands) UntrashByMatch ¶
type File ¶
type File struct { // AlternateLink opens the file in a relevant Google editor or viewer AlternateLink string BlobAt string // Copyable decides if the user has allowed for the file to be copied Copyable bool ExportLinks map[string]string Id string IsDir bool Md5Checksum string MimeType string ModTime time.Time LastViewedByMeTime time.Time Name string Size int64 Etag string // UserPermission contains the permissions for the authenticated user on this file UserPermission *drive.Permission // CacheChecksum when set avoids recomputation of checksums CacheChecksum bool // Monotonically increasing version number for the file Version int64 // The onwers of this file. OwnerNames []string // Permissions contains the overall permissions for this file Permissions []*drive.Permission LastModifyingUsername string OriginalFilename string Labels *drive.FileLabels Description string Parents []*ParentFile }
func NewRemoteFile ¶
type Options ¶
type Options struct { // Depth is the number of pages/ listing recursion depth Depth int // Exports contains the formats to export your Google Docs + Sheets to // e.g ["csv" "txt"] Exports []string // ExportsDir is the directory to put the exported Google Docs + Sheets. // If not provided, will export them to the same dir as the source files are ExportsDir string // Force once set always converts NoChange into an Addition Force bool // Hidden discovers hidden paths if set Hidden bool Ignorer func(string) bool // IgnoreChecksum when set avoids the step // of comparing checksums as a final check. IgnoreChecksum bool // IgnoreConflict when set turns off the conflict resolution safety. IgnoreConflict bool // Allows listing of content in trash InTrash bool Meta *map[string][]string Mount *config.Mount // NoClobber when set prevents overwriting of stale content NoClobber bool // NoPrompt overwrites any prompt pauses NoPrompt bool Path string // PageSize determines the number of results returned per API call PageSize int64 Recursive bool // Sources is a of list all paths that are // within the scope/path of the current gd context Sources []string // TypeMask contains the result of setting different type bits e.g // Folder to search only for folders etc. TypeMask int // Piped when set means to infer content to or from stdin Piped bool // Quiet when set toggles only logging of errors to stderrs as // well as reading from stdin in this case stdout is not logged to Quiet bool StdoutIsTty bool IgnoreNameClashes bool ExcludeCrudMask CrudValue ExplicitlyExport bool Md5sum bool Verbose bool FixClashes bool Match bool Starred bool // BaseLocal when set, during a diff uses the local file // as the base otherwise remote is used as the base BaseLocal bool // contains filtered or unexported fields }
type ParentFile ¶ added in v0.3.3
type Remote ¶
type Remote struct {
// contains filtered or unexported fields
}
func NewRemoteContext ¶
func (*Remote) EmptyTrash ¶
func (*Remote) FindBackPaths ¶ added in v0.3.3
func (*Remote) FindByParentId ¶
func (*Remote) FindByParentIdTrashed ¶
func (*Remote) FindByPathM ¶ added in v0.3.5
func (*Remote) FindByPathTrashed ¶
func (*Remote) FindByPathTrashedM ¶ added in v0.3.5
func (*Remote) FindMatches ¶
func (*Remote) FindStarred ¶ added in v0.3.3
func (*Remote) UpsertByComparison ¶
Source Files ¶
Click to show internal directories.
Click to hide internal directories.