mirror of
https://github.com/arnaucube/padArchiver.git
synced 2026-02-07 03:36:49 +01:00
implemented webServer, and implemented listPadsImporter
This commit is contained in:
112
cli/main.go
Normal file
112
cli/main.go
Normal file
@@ -0,0 +1,112 @@
|
||||
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")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user