1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-28 17:03:58 +08:00

Merge pull request #1592 from prusnak/empty-repo

Add --empty-repo option for init (#1559)
This commit is contained in:
Juan Benet
2015-08-28 14:13:09 +02:00
2 changed files with 45 additions and 5 deletions

View File

@ -27,6 +27,7 @@ var initCmd = &cmds.Command{
Options: []cmds.Option{ Options: []cmds.Option{
cmds.IntOption("bits", "b", fmt.Sprintf("Number of bits to use in the generated RSA private key (defaults to %d)", nBitsForKeypairDefault)), cmds.IntOption("bits", "b", fmt.Sprintf("Number of bits to use in the generated RSA private key (defaults to %d)", nBitsForKeypairDefault)),
cmds.BoolOption("force", "f", "Overwrite existing config (if it exists)"), cmds.BoolOption("force", "f", "Overwrite existing config (if it exists)"),
cmds.BoolOption("empty-repo", "e", "Don't add and pin help files to the local storage"),
// TODO need to decide whether to expose the override as a file or a // TODO need to decide whether to expose the override as a file or a
// directory. That is: should we allow the user to also specify the // directory. That is: should we allow the user to also specify the
@ -59,6 +60,12 @@ var initCmd = &cmds.Command{
return return
} }
empty, _, err := req.Option("e").Bool() // if !empty, it's okay empty == false
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
}
nBitsForKeypair, bitsOptFound, err := req.Option("b").Int() nBitsForKeypair, bitsOptFound, err := req.Option("b").Int()
if err != nil { if err != nil {
res.SetError(err, cmds.ErrNormal) res.SetError(err, cmds.ErrNormal)
@ -69,7 +76,7 @@ var initCmd = &cmds.Command{
nBitsForKeypair = nBitsForKeypairDefault nBitsForKeypair = nBitsForKeypairDefault
} }
if err := doInit(os.Stdout, req.InvocContext().ConfigRoot, force, nBitsForKeypair); err != nil { if err := doInit(os.Stdout, req.InvocContext().ConfigRoot, force, empty, nBitsForKeypair); err != nil {
res.SetError(err, cmds.ErrNormal) res.SetError(err, cmds.ErrNormal)
return return
} }
@ -82,10 +89,10 @@ Reinitializing would overwrite your keys.
`) `)
func initWithDefaults(out io.Writer, repoRoot string) error { func initWithDefaults(out io.Writer, repoRoot string) error {
return doInit(out, repoRoot, false, nBitsForKeypairDefault) return doInit(out, repoRoot, false, false, nBitsForKeypairDefault)
} }
func doInit(out io.Writer, repoRoot string, force bool, nBitsForKeypair int) error { func doInit(out io.Writer, repoRoot string, force bool, empty bool, nBitsForKeypair int) error {
if _, err := fmt.Fprintf(out, "initializing ipfs node at %s\n", repoRoot); err != nil { if _, err := fmt.Fprintf(out, "initializing ipfs node at %s\n", repoRoot); err != nil {
return err return err
} }
@ -113,8 +120,10 @@ func doInit(out io.Writer, repoRoot string, force bool, nBitsForKeypair int) err
return err return err
} }
if err := addDefaultAssets(out, repoRoot); err != nil { if !empty {
return err if err := addDefaultAssets(out, repoRoot); err != nil {
return err
}
} }
return initializeIpnsKeyspace(repoRoot) return initializeIpnsKeyspace(repoRoot)

View File

@ -75,6 +75,37 @@ test_expect_success "ipfs init output looks good" '
test_cmp expected actual_init test_cmp expected actual_init
' '
test_expect_success "Welcome readme exists" '
ipfs cat /ipfs/$HASH_WELCOME_DOCS/readme
'
test_expect_success "clean up ipfs dir" '
rm -rf "$IPFS_PATH"
'
test_expect_success "'ipfs init --empty-repo' succeeds" '
BITS="1024" &&
ipfs init --bits="$BITS" --empty-repo >actual_init
'
test_expect_success "ipfs peer id looks good" '
PEERID=$(ipfs config Identity.PeerID) &&
echo $PEERID | tr -dC "[:alnum:]" | wc -c | tr -d " " >actual_peerid &&
echo "46" >expected_peerid &&
test_cmp expected_peerid actual_peerid
'
test_expect_success "'ipfs init --empty-repo' output looks good" '
echo "initializing ipfs node at $IPFS_PATH" >expected &&
echo "generating $BITS-bit RSA keypair...done" >>expected &&
echo "peer identity: $PEERID" >>expected &&
test_cmp expected actual_init
'
test_expect_success "Welcome readme doesn't exists" '
test_must_fail ipfs cat /ipfs/$HASH_WELCOME_DOCS/readme
'
test_expect_success "clean up ipfs dir" ' test_expect_success "clean up ipfs dir" '
rm -rf "$IPFS_PATH" rm -rf "$IPFS_PATH"
' '