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.

113 lines
2.5 KiB

package main
import (
"bufio"
"fmt"
"os"
"strings"
pad2ipfs ".."
"github.com/fatih/color"
)
const checkIcon = "\xE2\x9C\x94 "
func main() {
asciiart := `
_ ___ _____ _____ ______ _____
| | |__ \ |_ _| __ \| ____/ ____|
_ __ __ _ __| | ) | | | | |__) | |__ | (___
| '_ \ / _ |/ _ | / / | | | ___/| __| \___ \
| |_) | (_| | (_| | / /_ _| |_| | | | ____) |
| .__/ \__,_|\__,_| |____| |_____|_| |_| |_____/ - cli
| |
|_|
`
color.Blue(asciiart)
fmt.Println(" v0.0.1")
color.Blue("https://github.com/arnaucode/pad2ipfs")
fmt.Println("")
fmt.Println("")
fmt.Println("")
newcommand := bufio.NewReader(os.Stdin)
fmt.Print("Please select command number")
options := `
1 - Pad Link to IPFS
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 - Pad Link to IPFS")
padlinkToIPFS()
break
case "2":
fmt.Println("selected 2 - IPFS hash to file")
hashToFile()
break
case "0":
fmt.Println("selected 0 - exit cli")
os.Exit(3)
break
default:
fmt.Println("Invalid option")
break
}
}
}
func padlinkToIPFS() {
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)
formats := ` Available formats:
- md (by default)
- txt
- html
- pdf
- odt`
fmt.Println(formats)
fmt.Print(" Enter the pad format: ")
format, _ := newcommand.ReadString('\n')
format = strings.Replace(format, "\n", "", -1)
if format == "" {
format = "md"
}
if format != "md" && format != "txt" && format != "html" && format != "pdf" && format != "odt" {
fmt.Println(" wrong format, using md format")
format = "md"
}
hash, err := pad2ipfs.Add(link, format)
if err != nil {
color.Red(err.Error())
} else {
color.Green(checkIcon + "File added to IPFS network")
fmt.Print("IPFS hash: ")
color.Blue(hash)
}
}
func hashToFile() {
newcommand := bufio.NewReader(os.Stdin)
fmt.Print(" Enter the IPFS hash: ")
hash, _ := newcommand.ReadString('\n')
hash = strings.Replace(hash, "\n", "", -1)
err := pad2ipfs.Get(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(pad2ipfs.GettedPads + "/" + hash + ".md")
}
}