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:
@ -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)
|
||||||
|
@ -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"
|
||||||
'
|
'
|
||||||
|
Reference in New Issue
Block a user