Commit Graph

585 Commits

Author SHA1 Message Date
Matt Bell
1281b25105 commands: Added PostRun function, called on the client 2015-01-23 18:19:40 -08:00
Brian Tiger Chow
fadedf9e68 refactor(core) extract corehttp package
PACKAGE DOCUMENTATION

package corehttp

    FUNCTIONS

    func GatewayOption(n *core.IpfsNode, mux *http.ServeMux) error

    func ListenAndServe(n *core.IpfsNode, addr ma.Multiaddr, options
    ...ServeOption) error

    func WebUIOption(n *core.IpfsNode, mux *http.ServeMux) error

    TYPES

    type ServeOption func(*core.IpfsNode, *http.ServeMux) error

    func DaemonOption(cctx commands.Context) ServeOption
2015-01-22 01:08:59 -08:00
Jeromy
feeada0d90 fix fuse mounting issues
this time, without loading the private key on every startup
2015-01-19 08:05:52 +00:00
Brian Tiger Chow
b0596cd4ff rename coreio to coreunix 2015-01-18 14:41:43 -08:00
Brian Tiger Chow
de45277883 doc(core, main) 2015-01-18 14:41:43 -08:00
Brian Tiger Chow
deb1bbe74f fix(command/init) rm stale comment 2015-01-18 14:41:43 -08:00
Brian Tiger Chow
1291470bf0 use core_io/Add in commands/init/writeWelcomeFile 2015-01-18 14:41:42 -08:00
Brian Tiger Chow
4b5ff960c9 feat(core): use repo.Repo in core constructor 2015-01-18 14:41:42 -08:00
Brian Tiger Chow
884143bf9c move generic packages to thirdparty (see thirdparty/README.md) 2015-01-18 14:04:45 -08:00
Brian Tiger Chow
6ec20b3574 huh 2015-01-14 03:02:23 -08:00
Brian Tiger Chow
40e41d24f7 feat(fsrepo): protect with a repo lockfile
NB: daemon is one spot the repo lock is typically acquired
2015-01-14 03:02:23 -08:00
Brian Tiger Chow
5705ea9859 style(init): -> errRepoExists
@jbenet
2015-01-13 03:09:33 -08:00
Brian Tiger Chow
97b865ff6f fix(init): simpler initialization logic
@jbenet this removes everything under the path
2015-01-13 03:09:33 -08:00
Brian Tiger Chow
4aba282379 feat(fsrepo): handle safe Removal 2015-01-13 03:09:33 -08:00
Brian Tiger Chow
80c2e97692 refactor(main): use fsrepo to load config 2015-01-13 03:09:31 -08:00
Brian Tiger Chow
1b700864f9 refactor(repo): all config writes must go through repo 2015-01-13 03:09:31 -08:00
Brian Tiger Chow
405afd2a02 refactor(config, repo): all writes go through FSRepo. next: privatize these 2015-01-13 03:09:31 -08:00
Brian Tiger Chow
c2877b2045 refactor(init, repo): init logs in fsrepo 2015-01-13 03:09:31 -08:00
Brian Tiger Chow
c5da1561b9 check datastore directory when opening the repo for use 2015-01-13 03:09:31 -08:00
Brian Tiger Chow
0d88f70c6e feat(init): remove datastore path override 2015-01-13 03:09:31 -08:00
Brian Tiger Chow
fa4cfe8da2 refactor(init, fsrepo): go through repo to write to config 2015-01-13 03:09:30 -08:00
Brian Tiger Chow
a2d1e3395e refactor(init): write config at top level 2015-01-13 03:09:30 -08:00
Brian Tiger Chow
44f3d95c3b refactor(repo/fsrepo): use repo to check whether config exists 2015-01-13 03:09:30 -08:00
Brian Tiger Chow
5b3164de5c refactor(repo/config) move config under repo 2015-01-13 03:09:30 -08:00
Juan Batiz-Benet
cac7e025b8 daemon: log error from gateway 2015-01-12 01:31:59 -08:00
Juan Batiz-Benet
4afb4e090f daemon gateway async 2015-01-12 01:14:32 -08:00
Juan Batiz-Benet
2c83cd5627 daemon: only try gateway addr if there 2015-01-12 01:05:15 -08:00
Juan Batiz-Benet
f215eee3ed gateway: cleaned up ServeHTTP func 2015-01-12 01:01:22 -08:00
Juan Batiz-Benet
ed41ac27fd daemon: refactor common parts of serve funcs 2015-01-12 01:01:21 -08:00
Matt Bell
f39f3fe432 cmd/ipfs: Redirect requests to /webui to webui app 2015-01-11 22:15:33 -08:00
Matt Bell
b5300f1d27 cmd/ipfs: Added gateway MIME type resolution 2015-01-11 22:15:33 -08:00
Matt Bell
e25b08231c cmd/ipfs: Renamed 'ipfsHandler' to 'gatewayHandler' 2015-01-11 22:15:33 -08:00
Matt Bell
cb84a376bd cmd/ipfs: Added an ipfsHandler constructor 2015-01-11 22:15:33 -08:00
Simon Kirkby
64cb1b6bf8 CR updates
replaced H
moved internal errors into function.

Signed-off-by: Simon Kirkby <tigger@interthingy.com>
2015-01-11 22:15:33 -08:00
Simon Kirkby
32823d2085 Static Website serving and listing
adds
 trailing slash redirection
 index.html return
 templated directory listing

Signed off : Simon Kirkby <tigger@interthingy.com>
2015-01-11 22:15:33 -08:00
Matt Bell
9119435cb6 cmd/ipfs: Added gateway server to daemon 2015-01-11 22:15:32 -08:00
Brian Tiger Chow
57b3ffa533 feat: new core constructor + config options (Standard, Online, Offline) 2015-01-11 01:23:25 -08:00
Juan Batiz-Benet
e1cde6bc8c Merge pull request #462 from jbenet/feat/indirect
Implement recursive indirect block creation for DAGs
2015-01-06 12:08:28 -08:00
Jeromy
e3cf893616 implement recursive indirect blocks
improve efficiency of multilayered indirect blocks

clean up tests

panic cleanup

clean up logic, improve readability

add final root node to the dagservice upon creation

importer: simplified dag generation

test: updated hashes using latest code

@whyrusleeping this is why the sharness tests
were failing: the hashes are added manually to
make sure our generation doesn't change.

cleanup after CR

fix merkledag tests

fix small block generation (no subblocks!)
2015-01-06 19:43:56 +00:00
Juan Batiz-Benet
517d3e99b8 bootstrap addrs: moved parsing around
this commit:
* moves parsing of bootstrap peers into config
* moves location of bootstrap addrs into core/commands
* refactor `*BootstrapPeer -> BootstrapPeer
2015-01-06 00:25:17 -08:00
Juan Batiz-Benet
64cb32dadd disable utp
utp is BROKEN!! it causes tests to fail.
2015-01-05 00:16:53 -08:00
Juan Batiz-Benet
cf62f63b58 better daemon + main exit semantics 2015-01-04 00:47:27 -08:00
Juan Batiz-Benet
e21b1f662b fuse mount lifecycle fixes
This commit cleans up how mounting was being done.
It now successfully signals when it is properly mounted
and listen to close signals correctly.
2015-01-04 00:47:27 -08:00
Juan Batiz-Benet
cc0d7c9b57 crypto -> p2p/crypto
The crypto package moves into p2p. Nothing in it so far is ipfs
specific; everything is p2p-general.
2015-01-02 08:46:45 -08:00
Juan Batiz-Benet
89f5cd4c94 introducing p2p pkg
I think it's time to move a lot of the peer-to-peer networking
but-not-ipfs-specific things into its own package: p2p.
This could in the future be split off into its own library.
The first thing to go is the peer.
2015-01-02 08:46:45 -08:00
Juan Batiz-Benet
c84a714b16 peer change: peer.Peer -> peer.ID
this is a major refactor of the entire codebase
it changes the monolithic peer.Peer into using
a peer.ID and a peer.Peerstore.

Other changes:
- removed handshake3.
-	testutil vastly simplified peer
-	secio bugfix + debugging logs
-	testutil: RandKeyPair
-	backpressure bugfix: w.o.w.
-	peer: added hex enc/dec
-	peer: added a PeerInfo struct
  PeerInfo is a small struct used to pass around a peer with
 	a set of addresses and keys. This is not meant to be a
 	complete view of the system, but rather to model updates to
 	the peerstore. It is used by things like the routing system.
-	updated peer/queue + peerset
-	latency metrics
-	testutil: use crand for PeerID gen
 	RandPeerID generates random "valid" peer IDs. it does not
 	NEED to generate keys because it is as if we lost the key
 	right away. fine to read some randomness and hash it. to
 	generate proper keys and an ID, use:
 	  sk, pk, _ := testutil.RandKeyPair()
 	  id, _ := peer.IDFromPublicKey(pk)
 	Also added RandPeerIDFatal helper
- removed old spipe
- updated seccat
- core: cleanup initIdentity
- removed old getFromPeerList
2014-12-23 08:33:32 -08:00
Markus Amalthea Magnuson
dbefedbb2e Fix typo.
”configurationx” -> ”configuration”
2014-12-14 20:55:29 +01:00
Juan Batiz-Benet
e7edeca392 added log.Events to secio 2014-12-12 03:29:09 -08:00
Juan Batiz-Benet
5b142948ab seccat (to test sio) 2014-12-12 02:45:23 -08:00
Juan Batiz-Benet
ac2be0b68b util/log: SetDebugLogging 2014-12-12 02:45:22 -08:00
Brian Tiger Chow
fb45e7b7fb fix: name
editing in the browser here goes nothing
2014-12-09 15:27:02 -08:00
Brian Tiger Chow
c2c95d1105 start threading context through the system
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-09 07:11:48 -08:00
Brian Tiger Chow
6780228765 fix: seed the random number generator
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-09 00:06:53 -08:00
Brian Tiger Chow
bd685045c8 fix: uranus and saturn IP addresses
Mistake: Saturn referred to the NY node and vice versa.

Correction: Fittingly, Uranus is in NY and _S_aturn is _S_ingapore.

I'll have to reboot the testnet to rectify the changes.

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-08 23:19:52 -08:00
Brian Tiger Chow
af01e0a53c add names
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-07 17:45:49 -08:00
Brian Tiger Chow
7ea2b2d80e feat(bootstrap!) add saturn, neptune, pluto, uranus
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-12-07 17:07:15 -08:00
Jeromy
e8536db351 make bitswap sub-RPC's timeout (slowly for now) 2014-12-05 20:53:33 +00:00
Jeromy
514b26e2b8 remove sigquit from handled signals 2014-12-05 20:53:33 +00:00
Brian Tiger Chow
8d6f2ed0bc chore(main) move logging statement to more appropriate place
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-27 17:06:20 -08:00
Brian Tiger Chow
9e6177ef2e log(main) add log event for executing pre-command hooks
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-25 06:16:39 -08:00
Brian Tiger Chow
b5dc686fda feat(main) create root context
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-25 06:16:39 -08:00
Matt Bell
706ebe8d24 daemon: Set allowed API origins in API_ORIGIN environment variable 2014-11-25 06:12:35 -08:00
Brian Tiger Chow
90ed148209 fix(eventlog) apply settings upon initialization
This commit applies the logging settings to the logging system upon
initialization `ipfs init` and `ipfs daemon --init`.

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-24 16:05:51 -08:00
Brian Tiger Chow
4d497f1c6e refactor(repo) mv ConfigureLogger to repo package
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

Conflicts:
	cmd/ipfs/main.go
2014-11-24 16:05:51 -08:00
Brian Tiger Chow
2c38487eb0 fix(eventlog) configure logging if repo is initialized
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-24 16:05:51 -08:00
Christian Couder
8b8b6ce9e2 Remove dot and slash before files in cmd/ipfs/.gitignore
It looks like files are not ignored when they are listed
starting with ./ in a .gitignore file.

At least this is true for me on Linux for the "ipfs"
binary in "cmd/ipfs/.gitignore".

License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2014-11-22 21:55:12 +01:00
Jeromy
34da5f039c log formatting (info -> infof) 2014-11-21 03:54:26 +00:00
Juan Batiz-Benet
a1dcbbad80 init: note about addrs 2014-11-20 09:15:48 -08:00
Juan Batiz-Benet
1a5cb300cb config: swarm is list of addrs 2014-11-20 09:14:48 -08:00
Juan Batiz-Benet
43452fdeb7 updated multiaddr + multiaddr-net
I broke out multiaddr/net to its own package so
that multiaddr parsing could remain lean. multiaddr-net
will vendor special implementations of protocols (like utp)
2014-11-20 00:58:48 -08:00
Juan Batiz-Benet
a7d1fd42d8 updating daemon addr output 2014-11-18 08:19:25 -08:00
Brian Tiger Chow
e12edd2053 fix(daemon) ensure IPFS is initialized before starting the daemon
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-18 06:42:44 -08:00
Juan Batiz-Benet
5aaa45db9a transitioned ipfs2 -> ipfs 2014-11-18 06:15:00 -08:00
Juan Batiz-Benet
ad3f3e003f removed old commands files
https://www.youtube.com/watch?v=kyFyAqLtHq8
2014-11-18 06:15:00 -08:00
Juan Batiz-Benet
2b32e698d0 remove ipfs2 from gitignore 2014-11-18 06:15:00 -08:00
Juan Batiz-Benet
f43954fcd1 ensure node constructed is online for daemon 2014-11-18 05:20:04 -08:00
Juan Batiz-Benet
d3c9c5978e remove daemon node constructor 2014-11-18 03:47:28 -08:00
Matt Bell
7a4491ada3 Added --mount flag to mount when running 'ipfs daemon' 2014-11-18 03:31:32 -08:00
Matt Bell
d1f1d2f5bf core/commands2: Fixed commands to use string arguments 2014-11-18 02:13:55 -08:00
Juan Batiz-Benet
eba0599dd2 bugfix: node teardown is the last man to go down
Warning: during normal execution node teardown must be the
last thing that happens because command requests return
io.Readers, which may still be constructing or processing
their output. The node (and its subservices) is needed for
this. good night and good luck.
2014-11-17 23:13:18 -08:00
Brian Tiger Chow
8d4c21694c fix
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-17 22:36:19 -08:00
Brian Tiger Chow
7cebc3cc38 inline prints
looking forward to fixing these again

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-17 22:36:19 -08:00
Brian Tiger Chow
ef65bb1ce3 revert to debug error
@jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-17 22:36:18 -08:00
Brian Tiger Chow
bc396610de fix(2/daemon) initialized --> init
@jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-17 22:36:18 -08:00
Brian Tiger Chow
061200452f feat(2/daemon) --initialized
@jbenet

now, ipfs can be built and executed in one step:
```
docker run jbenet/go-ipfs daemon --initialized
```

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-17 22:36:18 -08:00
Brian Tiger Chow
2bbfe4d56f debug(core, datastore, daemon) wrap errors
@jbenet @whyrusleeping @mappum

very helpful for tracking down errors. the stack traces are only
shown when debug mode is visible. They function best when caught at the
source.

I propose we use this errors package as a drop-in replacement for
fmt.Errorf and errors.New in all of our code, and use errors.Wrap for
external errors as they emerge from others' libraries.

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
2014-11-17 22:36:18 -08:00
Brian Tiger Chow
d0a3f9ba9a feat(2/init) expose init with defaults
will support daemon initialization

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
2014-11-17 22:36:18 -08:00
Brian Tiger Chow
6a380ff532 refactor(2/init) use util.FileExists
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
2014-11-17 22:36:18 -08:00
Brian Tiger Chow
c883f7dc36 refactor(2/init) extract const
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
2014-11-17 22:36:18 -08:00
Brian Tiger Chow
81f5d6fd5f debug(2/ipfs) make cmdDetails loggable
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
2014-11-17 22:36:17 -08:00
Brian Tiger Chow
cf8fb87df1 refactor(errors) debugerror -> errors
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-17 00:44:18 -08:00
Brian Tiger Chow
c4ea0b78ba fix(2/init) msg
@jbenet i presume you prefer it without the period

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-16 08:28:08 -08:00
Brian Tiger Chow
c8c062fe13 refactor(config/init) add hooks to identity generation. useful for displaying messages to the user
@jbenet this commit re-introduces the peer identity line. It's very
useful. I understand it may have been removed because of the clashing of
the IDs. To alleviate this, this commit places some negative space
between the two lines.

'to test' -> 'to get started' as a stronger call to action

```
λ. ipfs2 init -f
initializing ipfs node at /Users/btc/.go-ipfs
generating key pair...done.
peer identity: QmWzjxNEYKjDAxuHJqvtLP1dZTDjreBSUsArWoHai1v9yP

to get started, enter: ipfs cat QmYpv2VEsxzTTXRYX3PjDg961cnJE3kY1YDXLycHGQ3zZB
```

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-16 08:13:26 -08:00
Brian Tiger Chow
1c4c7412b4 fix(misc) address PR comments
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-16 07:40:05 -08:00
Brian Tiger Chow
02d8da09ae fix(2/init) message displayed during init
TODO use a writer to get the command output

resulting appearance:
```
go-ipfs (feat/machine-readable-logging) λ. make install_2; ipfs2 init -f
cd cmd/ipfs2 && go install
initializing ipfs node at /Users/btc/.go-ipfs
generating key pair...
peer identity: %s QmcPLgrqfvnneJ3vr3oGpkTiS9Psx8p3HxevjnoZYToDRm
```

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-16 07:01:01 -08:00
Brian Tiger Chow
6fec76d93e fix(imports) misc
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-16 07:01:00 -08:00
Brian Tiger Chow
25c98e8e61 refactor(eventlog) elog -> eventlog
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
2014-11-16 07:01:00 -08:00
Brian Tiger Chow
ac69aba561 feat(2/main) configure event logger
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
2014-11-16 07:01:00 -08:00
Brian Tiger Chow
be62b76516 refactor(2/main) use debugerror
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
2014-11-16 07:01:00 -08:00
Brian Tiger Chow
3a927cbcec feat(init) init logs upon config initialization
TODO allow user dir override

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
2014-11-16 07:01:00 -08:00
Brian Tiger Chow
d28c9cc7b4 refactor(init) extract initCheckDir function
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)
2014-11-16 07:01:00 -08:00
Brian Tiger Chow
4cadbc1673 style rename for clarity
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-16 07:00:59 -08:00
Brian Tiger Chow
15f850f08c refactor(2/main) helper methods for details object
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-16 07:00:59 -08:00
Brian Tiger Chow
55896a86d6 logs(2/main) place log statements approppriately
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-16 07:00:59 -08:00
Brian Tiger Chow
2c88e342db feat(elog) implement event logger
a wrapper around the util.Logger
metadata is loggable

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-16 07:00:58 -08:00
Brian Tiger Chow
57689ffc2b fix(2/version) make it possible to execute before init
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-16 03:20:10 -08:00
Juan Batiz-Benet
e290b54d9e Merge pull request #351 from jbenet/mount-fixes
Mount, Daemon, and Signal Handler Fixes
2014-11-16 02:40:31 -08:00
Juan Batiz-Benet
4ac6db9a24 ipfs1/mount: text + unmounting 2014-11-16 02:35:13 -08:00
Juan Batiz-Benet
13c390b0b5 fix ipfs1 mount so it will compile 2014-11-16 02:30:29 -08:00
Juan Batiz-Benet
705465db8b main + daemon signal handlers
This commit changes the signal handler to be added once
the command is executing. this is because the daemon
has its own signal handler, that must try to shut down
the node gracefully first. You know, just in case.
2014-11-16 02:22:43 -08:00
Juan Batiz-Benet
99f2378bac mount: fixed mount init + teardown
This commit adds a Mount abstraction (which is really just
a wrapped context closer). It makes sure to bind the mount
to the fate of the Node (i.e. close it if the node ends).
This fixes #350
2014-11-16 01:42:42 -08:00
Juan Batiz-Benet
61c1e39a51 Merge pull request #266 from jbenet/defaulthash
add in a default file hash and cleaned up init function a bit
2014-11-16 00:21:18 -08:00
Juan Batiz-Benet
ab09c3649c defaulthash: let's not ignore errors
@maybebtc fixed it. cc @whyrusleeping
2014-11-15 22:55:58 -08:00
Juan Batiz-Benet
7596bcce2d cleaned up ipfs init 2014-11-15 22:50:42 -08:00
Juan Batiz-Benet
7806973e67 vendor manners 2014-11-15 22:21:52 -08:00
Juan Batiz-Benet
8cf765af33 daemon: listen for term signals 2014-11-15 22:11:11 -08:00
Jeromy
e857a5bc9f move default hash into ipfs2, committed on freemont troll 2014-11-15 18:28:54 -08:00
Jeromy
ab805f3382 add in a default file hash and cleaned up init functiona bit 2014-11-15 17:50:05 -08:00
Juan Batiz-Benet
3df1513ea6 cmds: fixed help stdio use 2014-11-15 09:04:49 -08:00
Brian Tiger Chow
162169af77 fix(2/main) respect IPFS_LOGGING == debug behvaior
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-15 02:10:53 -08:00
Brian Tiger Chow
e940643f20 docs
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-15 01:00:09 -08:00
Brian Tiger Chow
56d732f9b1 fix(2/main) s/preemptsUpdates/preemptsAutoUpdate
addresses...

https://github.com/jbenet/go-ipfs/pull/336#discussion_r20397834

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-15 00:39:28 -08:00
Brian Tiger Chow
408fadc8be fix(2/main) don't check for updates when running init
@jbenet @mappum

Yeah, there's some duplicated work. But there's also a separation of
concerns. In one case, we check to determine where the command should
run. In the other case, we check to determine which hooks should run.
Having these actions separated reduces complexity in a nice way.

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 17:04:54 -08:00
Brian Tiger Chow
eb5bb1daa8 feat(debugerror)
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

impl errorf

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

return a debug error

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 17:04:48 -08:00
Brian Tiger Chow
ee378e2fbd fix(test) tour content struct now exists
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:31:06 -08:00
Juan Batiz-Benet
fa8fc1aefc cmds2: check for updates 2014-11-14 03:20:46 -08:00
Matt Bell
1abe97617e main: Pass Stdin to CLI request parser 2014-11-14 03:20:11 -08:00
Brian Tiger Chow
8b07b35467 ignore binary
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:09 -08:00
Juan Batiz-Benet
e0ba14c0eb cmds2: use cmdDetails on level cmds 2014-11-14 03:20:09 -08:00
Brian Tiger Chow
0eeed7cc68 add string method to command details
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:09 -08:00
Brian Tiger Chow
65eb1d86fa rm todos
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:08 -08:00
Brian Tiger Chow
476aab9552 rm unused tests
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:08 -08:00
Brian Tiger Chow
1065ae45aa s/number/id "the id of the topic you'd like to tour"
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:08 -08:00
Brian Tiger Chow
f1c20b4e3a don't use the marshaler
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:08 -08:00
Brian Tiger Chow
35da357dc5 fix(tour) patch up and verify tour output
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:07 -08:00
Brian Tiger Chow
c99e9e6000 feat(details) add funcs to negate negations
not immediately useful, but nice to have

tagging you to make sure i didn't make a mistake here @jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:07 -08:00
Brian Tiger Chow
5c4fa5a783 feat(tour) show list of topics when user tries to view topic that doesn't exist
eg.

```
ipfs2 (cmd-ref-part2) λ. go build ./...; ./ipfs2 tour 0

Tour 0 - Hello Mars

Hello Mars

ipfs2 (cmd-ref-part2) λ. go build ./...; ./ipfs2 tour 10

ERROR
    no topic with id: 10

TOPICS

    0 - Hello Mars
    0.1 - Hello Mars 2

```
2014-11-14 03:20:07 -08:00
Juan Batiz-Benet
afa5eedb44 cmds2: commandShouldRunOnDaemon
This commit adds the pretty-complicated decision function
to check whether a command should run on the daemon.

@maybebtc @mappum double check the logic?
2014-11-14 03:20:07 -08:00
Juan Batiz-Benet
bb8d4ebd6b cmds2: cmdDetailsMap 2014-11-14 03:20:07 -08:00
Brian Tiger Chow
ca2828f33c feat(commands) add ClientError(msg) helper and use it to return a fancy error to the client in the tour
@jbenet this exists now

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:07 -08:00
Brian Tiger Chow
c5e75f91a6 tests(2/main) errClient
Discovered this quirk about interfaces.

@whyrusleeping
@mappum
@jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:07 -08:00
Brian Tiger Chow
0a93f9d764 style(tour) newline at the end
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:06 -08:00
Matt Bell
db361d9403 commands/cli: Made Parse return an error if request has unrecognized options 2014-11-14 03:20:06 -08:00
Matt Bell
815efdb125 daemon: Added a ShortDescription 2014-11-14 03:20:06 -08:00
Brian Tiger Chow
ff6c4ce6a4 test(tour) ensure template renders without failure
License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:06 -08:00
Juan Batiz-Benet
047d2e2d62 cmd2: Marshaller -> Marshaler (see golang/encoding)
Also:
- map[cmds.EncodingType]cmds.Marshaller -> MarshalMap

cc @mappum @maybebtc
2014-11-14 03:20:05 -08:00
Matt Bell
c973776049 main: Fixed logical error in remote/local check 2014-11-14 03:20:05 -08:00
Matt Bell
e700b16576 Ported remaining command helptext to HelpText struct 2014-11-14 03:20:05 -08:00
Matt Bell
b4735eb10b main: Test if commands are local-only when choosing daemon vs. local 2014-11-14 03:20:04 -08:00
Matt Bell
188bf779db Removed cmdInvocation.root 2014-11-14 03:20:03 -08:00
Matt Bell
9afb85714a commands/cli: Don't return root in Parse 2014-11-14 03:20:03 -08:00
Matt Bell
b7b15b8b30 cmd/ipfs2: Added isLocal function for testing if a command is local only 2014-11-14 03:20:03 -08:00
Matt Bell
2dd6f24157 core/commands2: Refactored some commands to HelpText struct for helptext fields 2014-11-14 03:20:03 -08:00
Matt Bell
2fd8f39c65 cmd/ipfs2: Added comments to explain purpose of CLI root 2014-11-14 03:20:03 -08:00
Juan Batiz-Benet
7daf888902 cmds2: handle error return codes 2014-11-14 03:20:03 -08:00
Juan Batiz-Benet
d18902df27 cmds2: changed how the ctx.Node works 2014-11-14 03:20:02 -08:00
Juan Batiz-Benet
3352aeee15 cmds2: fixed show help on root + noncallable 2014-11-14 03:20:02 -08:00
Juan Batiz-Benet
f738e899c2 cmd2: simplified main
Attention @maybebtc @mappum

I cleaned up + simplified the main flow. Now, all printing
is contained inside main itself! (:cheer:). I do this with
the help of a cmdInvocation struct that has both
a Parse and Run. The only major clunkiness left is that the
"CallCommand" is still its own function. But *shrug*.

Please test it works as we would expect. i changed much of
the flow, so likely that i missed a complicated edge case.

main roadmap:
- parse the commandline to get a cmdInvocation
- if user requests, help, print it and exit.
- run the command invocation
- output the response
- if anything fails, print error, maybe with help
2014-11-14 03:20:02 -08:00
Matt Bell
092524fcbb cmd/ipfs2: Added a 'commands' command for CLI root 2014-11-14 03:20:01 -08:00
Matt Bell
fd8b1930af cmd/ipfs2: Copy subcommands from core/commands2 root into cmd/ipfs2 root 2014-11-14 03:20:01 -08:00
Brian Tiger Chow
4e740f63eb docs(ipfs2/main)
@mappum

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
2014-11-14 03:20:01 -08:00
Brian Tiger Chow
22a4cc7d30 fix(ipfs2) output info to logger when checking daemon status 2014-11-14 03:20:01 -08:00
Juan Batiz-Benet
a2d06b5f9a cmds2: errHelpRequested error 2014-11-14 03:20:01 -08:00
Matt Bell
78bc748342 cmd/ipfs: Fixed bug where handleParseError sets error to nil 2014-11-14 03:19:59 -08:00
Juan Batiz-Benet
ec8be23cbc cmds/main decomposed handleParseError 2014-11-14 03:19:59 -08:00
Brian Tiger Chow
7060e7dfe2 rename variable 2014-11-14 03:19:58 -08:00
Brian Tiger Chow
fed2f8d2c6 fix(2/main) option value signature 2014-11-14 03:19:58 -08:00
Brian Tiger Chow
013d98a35a fix(2/init, 2/add) fix optionvalue signature 2014-11-14 03:19:58 -08:00
Matt Bell
7a505b44c7 Handle -h and --help differently (short text vs long text) 2014-11-14 03:17:42 -08:00
Matt Bell
c76a52e422 cmd/ipfs2: Show short help text instead for usage errors 2014-11-14 03:17:42 -08:00
Matt Bell
4970d8b5a3 commands/cli: Use template for helptext generation 2014-11-14 03:17:41 -08:00
Matt Bell
e23b537f32 Override root command help text 2014-11-14 03:17:41 -08:00
Matt Bell
b358bb3ffd cmd/ipfs2: Added comment to explain default encoding logic 2014-11-14 03:17:40 -08:00
Matt Bell
aea2fce987 cmd/ipfs2: Added explanation comment to ipfsHandler 2014-11-14 03:17:40 -08:00
Matt Bell
4902361fd5 cmd/ipfs2: Updated readme 2014-11-14 03:17:40 -08:00
Matt Bell
c468a4dbf5 core/commands2: Use Argument constructors in commands 2014-11-14 03:17:39 -08:00
Brian Tiger Chow
8b14012bba refactor(ipfs2/main) rm exit 2014-11-14 03:17:39 -08:00
Brian Tiger Chow
ad5ad912ce refactor(ipfs2/main) use guard 2014-11-14 03:17:39 -08:00
Brian Tiger Chow
74b38cb65f refactor(ipfs2/main) change the way we handle profiling 2014-11-14 03:17:39 -08:00
Brian Tiger Chow
d72af9c910 refactor(ipfs2/main) return err 2014-11-14 03:17:39 -08:00
Brian Tiger Chow
9268bdd56e refactor(ipfs2/main) replace with equivalent action 2014-11-14 03:17:39 -08:00
Brian Tiger Chow
fa5ca3f27f refactor(ipfs2/main) output response 2014-11-14 03:17:39 -08:00
Brian Tiger Chow
cda68a19d0 refactor(ipfs2/main) return err 2014-11-14 03:17:39 -08:00
Brian Tiger Chow
13a90537d6 refactor(ipfs2/main)
* bring debug checking back to top level so we have more control over
  CPU profiling.

* bring help text up to top level so we can exit from the program
  at the top level instead of within an arbitrary function
2014-11-14 03:17:38 -08:00
Brian Tiger Chow
2473d2d720 refactor(ipfs2/main) same for debug 2014-11-14 03:17:38 -08:00
Brian Tiger Chow
28be8a6171 refactor(ipfs2/main) check err before 2014-11-14 03:17:38 -08:00
Brian Tiger Chow
f79f1267f7 refactor(ipfs2/main) split lines 2014-11-14 03:17:38 -08:00
Brian Tiger Chow
203a0723ba refactor(ipfs2/main) return errors in main 2014-11-14 03:17:38 -08:00
Matt Bell
17c5923160 core/commands2: Fixed init option definition 2014-11-14 03:17:38 -08:00
Matt Bell
3e507f7c9f commands: Changed option accessor API (Request#Option now returns an OptionValue) 2014-11-14 03:17:38 -08:00
Matt Bell
d700a2ce87 cmd/ipfs2: Cleaned up main option checking (no longer need temporary Request) 2014-11-14 03:17:37 -08:00
Matt Bell
8ee3e996cc core/commands2: Use Option constructors in commands 2014-11-14 03:17:37 -08:00
Matt Bell
3e30093c2b core/commands2: Updated commands to new Run function API 2014-11-14 03:17:37 -08:00
Brian Tiger Chow
f4d0b8baa0 clarity(util) ToReaders -> CastToReaders 2014-11-14 03:17:36 -08:00
Brian Tiger Chow
38a6d0ead0 fix(init) version 2014-11-14 03:17:36 -08:00
Brian Tiger Chow
8ffd27a6e1 fix(init) inline bootstrap peers 2014-11-14 03:17:36 -08:00
Matt Bell
b3ea49954a cmd/ipfs2: Handle SIGTERM 2014-11-14 03:17:35 -08:00
Matt Bell
cc519c47a3 cmd/ipfs2: Ensure process exits smoothly 2014-11-14 03:17:35 -08:00
Matt Bell
35983b480a cmd/ipfs2: Made '/ipfs' handler return more accurate HTTP response codes, resolves #287 2014-11-14 03:17:35 -08:00
Matt Bell
897e0f869f cmds/ipfs2: Added '/ipfs' HTTP handling 2014-11-14 03:17:35 -08:00