You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

112 lines
2.7 KiB

package main
import (
"bufio"
"fmt"
"os"
"strings"
padArchiver ".."
"github.com/fatih/color"
)
const checkIcon = "\xE2\x9C\x94 "
func main() {
asciiart := `
.
. _ _ _
. | | /\ | | (_)
_ __ __ _ __| | / \ _ __ ___| |__ ___ _____ _ __
| '_ \ / _ |/ _ | / /\ \ | '__/ __| '_ \| \ \ / / _ \ '__|
| |_) | (_| | (_| |/ ____ \| | | (__| | | | |\ V / __/ |
| .__/ \__,_|\__,_/_/ \_\_| \___|_| |_|_| \_/ \___|_| - cli
| |
|_|
`
color.Blue(asciiart)
fmt.Println(" v0.0.1")
color.Blue("https://github.com/arnaucode/padArchiver")
fmt.Println("")
fmt.Println("")
fmt.Println("")
newcommand := bufio.NewReader(os.Stdin)
fmt.Print("Please select command number")
options := `
1 - Store Pad (to IPFS, Git, and send Telegram notification)
2 - IPFS hash to file
0 - Exit cli
option to select: `
for {
fmt.Print(options)
option, _ := newcommand.ReadString('\n')
option = strings.TrimSpace(option)
switch option {
case "1":
fmt.Println("selected 1 - Store Pad (to IPFS and Git)")
option1()
break
case "2":
fmt.Println("selected 2 - IPFS hash to file")
option2()
break
case "0":
fmt.Println("selected 0 - exit cli")
os.Exit(3)
break
default:
fmt.Println("Invalid option")
break
}
}
}
func option1() {
newcommand := bufio.NewReader(os.Stdin)
fmt.Print(" Enter the repo ID (name): ")
repoID, _ := newcommand.ReadString('\n')
repoID = strings.Replace(repoID, "\n", "", -1)
newcommand = bufio.NewReader(os.Stdin)
fmt.Print(" Enter the pad link: ")
link, _ := newcommand.ReadString('\n')
link = strings.Replace(link, "\n", "", -1)
newcommand = bufio.NewReader(os.Stdin)
fmt.Print(" Enter the subdirectory: ")
subdirectory, _ := newcommand.ReadString('\n')
subdirectory = strings.Replace(subdirectory, "\n", "", -1)
newcommand = bufio.NewReader(os.Stdin)
fmt.Print(" Enter the pad Title: ")
title, _ := newcommand.ReadString('\n')
title = strings.Replace(title, "\n", "", -1)
repo := padArchiver.OpenRepo(repoID)
ipfsHash, err := repo.StorePad(link, subdirectory, title)
if err != nil {
color.Red(err.Error())
} else {
fmt.Println("IPFS hash: " + ipfsHash)
color.Green(checkIcon + "Pad stored in IPFS and Git")
}
}
func option2() {
newcommand := bufio.NewReader(os.Stdin)
fmt.Print(" Enter the IPFS hash: ")
hash, _ := newcommand.ReadString('\n')
hash = strings.Replace(hash, "\n", "", -1)
err := padArchiver.IpfsGet(hash, hash+".md")
if err != nil {
color.Red(err.Error())
} else {
color.Green(checkIcon + "File downloaded from IPFS network")
fmt.Print("File stored in: ")
color.Blue(padArchiver.GettedPads + "/" + hash + ".md")
}
}