wastebasket

package module
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2023 License: MPL-2.0 Imports: 9 Imported by: 2

README

Wastebasket

CI

Wastebasket is a go library / CLI tool allowing you to interact with your system trashbin.

Dependencies

Golang

The library supports at least the 3 latest major Golang versions. Depending on your OS it might still work on an older version, but there are no guarantees.

Windows

There are no dependencies, it depends on the Shell32 API built into Windows.

No CGO required

Linux (Unix)

There are two (well, four) options you've got here. Wastebasket offers a native golang implementation of the FreeDesktop Trash specification.

Additionally, the custom implementation should also work for systems such as BSD and its derivatives. However, this has not been tested and I do not plan on doing so, simply because GitHub does not currently support running tests on any BSD derivatives.

If anyone is willing to host a custom runner (which I think is possible), then I'd be open to this though.

No CGO required

Mac OS

The only dependency is Finder, which is installed by default.

There are plans for a better implementation, that uses the Objective-C API provided by Mac OS, resulting in most likely much better performance.

No CGO required (Might change in the future)

Library usage

Grab it via

go get github.com/Bios-Marcel/wastebasket

and you are ready to go.

Minimal Go example that creates a file, deletes it and empties the trashbin:

package main

import (
    "fmt"
    "os"

    "github.com/Bios-Marcel/wastebasket"
)

func main() {
    os.WriteFile("test.txt", []byte("Test"), os.ModePerm)
    fmt.Println(wastebasket.Trash("test.txt"))
    wastebasket.Empty()
}

CLI usage

Wastebasket can also be used as a commandline interface. You can build executables for each subcommand (such as empty) separately, or build wastebasket as a whole.

In order to do so, run

go build ./cmd/CMD

where CMD is whichever command you want to build.

Autocompletion

The CLI offers autocompletion for flags and pre-defined arguments.

Bash; Write the following into your bash profile:

source <(wastebasket completion bash)

Additionally, completion is supported for zsh, powershell and fish. For information, see Cobra shell completions

Benchmarks

Run benchmarks using:

go test -bench=.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Empty

func Empty() error

func Trash

func Trash(paths ...string) error

Types

This section is empty.

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL