1. 21 Jul, 2015 1 commit
  2. 20 Jul, 2015 2 commits
  3. 18 Jul, 2015 1 commit
  4. 14 Jul, 2015 1 commit
  5. 10 Jul, 2015 2 commits
  6. 09 Jul, 2015 1 commit
  7. 06 Jul, 2015 1 commit
  8. 04 Jul, 2015 1 commit
  9. 03 Jul, 2015 1 commit
  10. 02 Jul, 2015 1 commit
  11. 01 Jul, 2015 2 commits
  12. 27 Jun, 2015 2 commits
  13. 22 Jun, 2015 1 commit
  14. 20 Jun, 2015 9 commits
  15. 19 Jun, 2015 3 commits
    • Dylan Powers's avatar
      3f22954f
    • W. Trevor King's avatar
      core/commands/publish: Allow explicit local node ID · e700c02c
      W. Trevor King authored
      Instead of raising "keychains not yet implemented" whenever we have an
      explicit node ID, only raise the error when the given node ID isn't
      the local node.  This allows folks to use the more-general
      explicit-node-ID form in scripts and such now, as long as they use the
      local node name when calling those scripts.
      
      Also add a test for this case, and update the comment for the
      one-argument case to match the current syntax for extracting a
      multihash name string.
      
      License: MIT
      Signed-off-by: default avatarW. Trevor King <wking@tremily.us>
      e700c02c
    • W. Trevor King's avatar
      core/commands: Make IpnsCmd and PublishCmd public · 40c6ffd4
      W. Trevor King authored
      ipfs-shell [1] accesses the Command objects directly to construct
      requests for an external IPFS daemon API.  This isn't a terribly
      robust approach, because it doesn't handle version differences between
      the version of go-ipfs used to build the daemon and the version used
      to build the ipfs-shell-consuming application.  But for cases where
      you can get those APIs to match it works well.  Making these two
      commands public allows us to write ipfs-shell wrappers for them.
      Until we figure out how to get ipfs-shell working without access to
      core/commands, I think the best approach is to make future command
      objects and their returned structures public, and to go back and
      expose existing commands/structures on an as-needed basis.
      
      In this case, I need the public PublishCmd for the Docker-registry
      storage driver, and I made the IpnsCmd public at the same time to stay
      consistent for both 'ipfs name ...' sub-commands.
      
      [1]: https://github.com/whyrusleeping/ipfs-shell
      
      License: MIT
      Signed-off-by: default avatarW. Trevor King <wking@tremily.us>
      40c6ffd4
  16. 18 Jun, 2015 4 commits
  17. 16 Jun, 2015 1 commit
  18. 13 Jun, 2015 3 commits
    • W. Trevor King's avatar
      core/commands/unixfs: Rename 'ipfs unixfs' to 'ipfs file' · 3e6905e8
      W. Trevor King authored
      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: default avatarW. Trevor King <wking@tremily.us>
      3e6905e8
    • W. Trevor King's avatar
      core/commands/unixfs/ls: Don't recurse into chunked files · 663f37cb
      W. Trevor King authored
      Folks operating at the Unix-filesystem level shouldn't care about that
      level of Merkle-DAG detail.  Before this commit we had:
      
        $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
        /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox:
        ... several lines of empty-string names ...
      
      And with this commit we have:
      
        $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
        /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
      
      I also reworked the argument-prefixing (object.Argument) in the output
      marshaller to avoid redundancies like:
      
        $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
        /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox:
        /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
      
      As a side-effect of this rework, we no longer have the trailing blank
      line that we used to have after the final directory listing.
      
      The new ErrImplementation is like Python's NotImplementedError, and is
      mostly a way to guard against external changes that would need
      associated updates in this code.  For example, once we see something
      that's neither a file nor a directory, we'll have to update the switch
      statement to handle those objects.
      
      License: MIT
      Signed-off-by: default avatarW. Trevor King <wking@tremily.us>
      663f37cb
    • W. Trevor King's avatar
      core/commands/unixfs: Add 'ipfs unixfs ls ...' · 434871ba
      W. Trevor King authored
      This is similar to 'ipfs ls ...', but it:
      
      * Lists file sizes that match the content size:
      
          $ ipfs --encoding=json unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4
          {
            "Objects": [
              {
                "Argument": "/ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4",
                "Links": [
                  {
                    "Name": "busybox",
                    "Hash": "QmPbjmmci73roXf9VijpyQGgRJZthiQfnEetaMRGoGYV5a",
                    "Size": 1947624,
                    "Type": 2
                  }
                ]
              }
            ]
          }
          $ ipfs cat /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox | wc -c
          1947624
      
        'ipfs ls ...', on the other hand, is using the Merkle-descendant
        size, which also includes fanout links and the typing information
        unixfs objects store in their Data:
      
          $ ipfs --encoding=json ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4
          {
            "Objects": [
              {
                "Hash": "/ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4",
                "Links": [
                  {
                    "Name": "busybox",
                    "Hash": "QmPbjmmci73roXf9VijpyQGgRJZthiQfnEetaMRGoGYV5a",
                    "Size": 1948128,
                    "Type": 2
                  }
                ]
              }
            ]
          }
      
      * Has a simpler text output corresponding to POSIX ls [1]:
      
          $ ipfs unixfs ls /ipfs/QmV2FrBtvue5ve7vxbAzKz3mTdWq8wfMNPwYd8d9KHksCF/gentoo/stage3/amd64/2015-04-02
          bin
          dev
          etc
          proc
          run
          sys
          $ ipfs ls /ipfs/QmV2FrBtvue5ve7vxbAzKz3mTdWq8wfMNPwYd8d9KHksCF/gentoo/stage3/amd64/2015-04-02
          QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4 1948183 bin/
          QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn 4       dev/
          QmUz1Z5jnQEjwr78fiMk5babwjJBDmhN5sx5HvPiTGGGjM 1207    etc/
          QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn 4       proc/
          QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn 4       run/
          QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn 4       sys/
      
        The minimal output allows us to start off with POSIX compliance and
        then add options (which may or may not be POSIX compatible) to
        adjust the output format as we get a better feel for what we need
        ([2] through [3]).
      
      [1]: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html
      [2]: https://botbot.me/freenode/ipfs/2015-06-12/?msg=41724727&page=5
      [3]: https://botbot.me/freenode/ipfs/2015-06-12/?msg=41725146&page=5
      
      License: MIT
      Signed-off-by: default avatarW. Trevor King <wking@tremily.us>
      434871ba
  19. 09 Jun, 2015 1 commit
  20. 08 Jun, 2015 1 commit
  21. 03 Jun, 2015 1 commit
    • Jeromy's avatar
      implement an ipfs patch command for modifying merkledag objects · 40e423d6
      Jeromy authored
      WIP: object creator command
      
      better docs
      
      move patch command into object namespace
      
      dont ignore cancel funcs
      
      addressing comment from CR
      
      add two new subcommands to object patch and clean up main Run func
      
      cancel contexts in early returns
      
      switch to util.Key
      40e423d6