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") } }