mirror of
				https://github.com/ipfs/kubo.git
				synced 2025-11-04 06:00:01 +08:00 
			
		
		
		
	To be less confusing to newcomers (the IPFS filesystem isn't Unix-specific anyway, and it isn't even very POSIX-specific [1,2,3]). I'm a bit uncertain about having one name for users and another for devs, but the consensus seems to be that mainaining two names is worth the trouble [4]. We also kicked around: * 'files' (plural), * 'filesystem' (too long), and * 'fs' (redundant after 'ipfs', even though IPFS isn't just about filesystems) on IRC [5 through 6]. I wish there was a more evocative term. I'm never sure where "file" lands on the scale between "filesysytem", "everything is a file", "a single chunk of data with an associated inode". But we can't think of anything better. [1]: https://github.com/ipfs/go-ipfs/pull/1348#issuecomment-110529070 [2]: https://github.com/ipfs/go-ipfs/pull/1348#issuecomment-110529921 [3]: https://github.com/ipfs/go-ipfs/pull/1136/files#r29377283 In my response to this (no longer visibile on GitHub): On Wed, Apr 29, 2015 at 01:30:04PM -0700, Juan Batiz-Benet wrote: > > +package fsnode > > i think this package should be called `unixfs` as that's the > abstraction that this is calling to. Will do, although I don't see what's especially Unix-y about these file nodes. [4]: https://github.com/ipfs/go-ipfs/pull/1348#issuecomment-110529811 [5]: https://botbot.me/freenode/ipfs/2015-06-09/?msg=41428456&page=5 [6]: https://botbot.me/freenode/ipfs/2015-06-09/?msg=41430703&page=5 License: MIT Signed-off-by: W. Trevor King <wking@tremily.us>
		
			
				
	
	
		
			124 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package commands
 | 
						|
 | 
						|
import (
 | 
						|
	"io"
 | 
						|
	"strings"
 | 
						|
 | 
						|
	cmds "github.com/ipfs/go-ipfs/commands"
 | 
						|
	unixfs "github.com/ipfs/go-ipfs/core/commands/unixfs"
 | 
						|
	evlog "github.com/ipfs/go-ipfs/thirdparty/eventlog"
 | 
						|
)
 | 
						|
 | 
						|
var log = evlog.Logger("core/commands")
 | 
						|
 | 
						|
type TestOutput struct {
 | 
						|
	Foo string
 | 
						|
	Bar int
 | 
						|
}
 | 
						|
 | 
						|
var Root = &cmds.Command{
 | 
						|
	Helptext: cmds.HelpText{
 | 
						|
		Tagline: "global p2p merkle-dag filesystem",
 | 
						|
		Synopsis: `
 | 
						|
ipfs [<flags>] <command> [<arg>] ...
 | 
						|
`,
 | 
						|
		ShortDescription: `
 | 
						|
BASIC COMMANDS
 | 
						|
 | 
						|
    init          Initialize ipfs local configuration
 | 
						|
    add <path>    Add an object to ipfs
 | 
						|
    cat <ref>     Show ipfs object data
 | 
						|
    get <ref>     Download ipfs objects
 | 
						|
    ls <ref>      List links from an object
 | 
						|
    refs <ref>    List hashes of links from an object
 | 
						|
 | 
						|
DATA STRUCTURE COMMANDS
 | 
						|
 | 
						|
    block         Interact with raw blocks in the datastore
 | 
						|
    object        Interact with raw dag nodes
 | 
						|
    file          Interact with Unix filesystem objects
 | 
						|
 | 
						|
ADVANCED COMMANDS
 | 
						|
 | 
						|
    daemon        Start a long-running daemon process
 | 
						|
    mount         Mount an ipfs read-only mountpoint
 | 
						|
    resolve       Resolve any type of name
 | 
						|
    name          Publish or resolve IPNS names
 | 
						|
    dns           Resolve DNS links
 | 
						|
    pin           Pin objects to local storage
 | 
						|
    repo gc       Garbage collect unpinned objects
 | 
						|
 | 
						|
NETWORK COMMANDS
 | 
						|
 | 
						|
    id            Show info about ipfs peers
 | 
						|
    bootstrap     Add or remove bootstrap peers
 | 
						|
    swarm         Manage connections to the p2p network
 | 
						|
    dht           Query the dht for values or peers
 | 
						|
    ping          Measure the latency of a connection
 | 
						|
    diag          Print diagnostics
 | 
						|
 | 
						|
TOOL COMMANDS
 | 
						|
 | 
						|
    config        Manage configuration
 | 
						|
    version       Show ipfs version information
 | 
						|
    update        Download and apply go-ipfs updates
 | 
						|
    commands      List all available commands
 | 
						|
 | 
						|
Use 'ipfs <command> --help' to learn more about each command.
 | 
						|
`,
 | 
						|
	},
 | 
						|
	Options: []cmds.Option{
 | 
						|
		cmds.StringOption("config", "c", "Path to the configuration file to use"),
 | 
						|
		cmds.BoolOption("debug", "D", "Operate in debug mode"),
 | 
						|
		cmds.BoolOption("help", "Show the full command help text"),
 | 
						|
		cmds.BoolOption("h", "Show a short version of the command help text"),
 | 
						|
		cmds.BoolOption("local", "L", "Run the command locally, instead of using the daemon"),
 | 
						|
	},
 | 
						|
}
 | 
						|
 | 
						|
// commandsDaemonCmd is the "ipfs commands" command for daemon
 | 
						|
var CommandsDaemonCmd = CommandsCmd(Root)
 | 
						|
 | 
						|
var rootSubcommands = map[string]*cmds.Command{
 | 
						|
	"add":       AddCmd,
 | 
						|
	"block":     BlockCmd,
 | 
						|
	"bootstrap": BootstrapCmd,
 | 
						|
	"cat":       CatCmd,
 | 
						|
	"commands":  CommandsDaemonCmd,
 | 
						|
	"config":    ConfigCmd,
 | 
						|
	"dht":       DhtCmd,
 | 
						|
	"diag":      DiagCmd,
 | 
						|
	"dns":       DNSCmd,
 | 
						|
	"get":       GetCmd,
 | 
						|
	"id":        IDCmd,
 | 
						|
	"log":       LogCmd,
 | 
						|
	"ls":        LsCmd,
 | 
						|
	"mount":     MountCmd,
 | 
						|
	"name":      NameCmd,
 | 
						|
	"object":    ObjectCmd,
 | 
						|
	"pin":       PinCmd,
 | 
						|
	"ping":      PingCmd,
 | 
						|
	"refs":      RefsCmd,
 | 
						|
	"repo":      RepoCmd,
 | 
						|
	"resolve":   ResolveCmd,
 | 
						|
	"stats":     StatsCmd,
 | 
						|
	"swarm":     SwarmCmd,
 | 
						|
	"tour":      tourCmd,
 | 
						|
	"file":      unixfs.UnixFSCmd,
 | 
						|
	"update":    UpdateCmd,
 | 
						|
	"version":   VersionCmd,
 | 
						|
	"bitswap":   BitswapCmd,
 | 
						|
}
 | 
						|
 | 
						|
func init() {
 | 
						|
	Root.Subcommands = rootSubcommands
 | 
						|
}
 | 
						|
 | 
						|
type MessageOutput struct {
 | 
						|
	Message string
 | 
						|
}
 | 
						|
 | 
						|
func MessageTextMarshaler(res cmds.Response) (io.Reader, error) {
 | 
						|
	return strings.NewReader(res.Output().(*MessageOutput).Message), nil
 | 
						|
}
 |