add dry run

This commit is contained in:
nazunalika 2022-01-01 16:41:59 -07:00
parent d81a06e97a
commit 8c3e155ca9
Signed by: label
GPG key ID: 6735C0E1BD65D048
4 changed files with 30 additions and 8 deletions

View file

@ -64,6 +64,10 @@ func Fpaste(life string, lexer string, fileContent string) error {
fmt.Println("Uploading...")
resp, err := http.PostForm(rurl.String(), form)
if err != nil {
fmt.Printf("Could not contact fpaste endpoint (%s)\n", fpasteURL)
os.Exit(1)
}
// The response comes back as bytes, so we copy the response buffer into io
// and string it out

View file

@ -25,6 +25,7 @@ func runPaste(ctx *cli.Context) error {
stdMethod := utility.StdInChecker()
sysInfoMethod := ctx.Bool("sysinfo")
pasteBinGoTo := ctx.String("pastebin")
dryMode := ctx.Bool("dry")
// Check sysinfo is enabled and run through all the required stuff
if sysInfoMethod {
@ -61,11 +62,15 @@ func runPaste(ctx *cli.Context) error {
// Check that PasteData is text, and not binary
// fmt.Println("You cannot upload binary data.")
switch pasteBinGoTo {
case "rpaste":
Rpaste(ctx.String("life"), ctx.String("type"), PasteData)
case "fpaste":
Fpaste(ctx.String("life"), ctx.String("type"), PasteData)
if dryMode {
fmt.Printf(PasteData)
} else {
switch pasteBinGoTo {
case "rpaste":
Rpaste(ctx.String("life"), ctx.String("type"), PasteData)
case "fpaste":
Fpaste(ctx.String("life"), ctx.String("type"), PasteData)
}
}
return nil

View file

@ -15,6 +15,8 @@ var (
AppBuiltWith string
AppConf string
AppVer string
BasicDmidecode bool
DryMode bool
LexerType string
LifeTime string
PasteBinService string

View file

@ -22,9 +22,11 @@ var (
DefaultLexer = "text"
DefaultLifeTime = "1hour"
// This will end up being dynamic in the future
DefaultPasteBin = "rpaste"
DefaultSysInfo = false
ShortOption = true
DefaultPasteBin = "rpaste"
DefaultSysInfo = false
DefaultDryMode = false
DefaultBasicDmidecode = false
ShortOption = true
)
// Initialize default settings
@ -32,10 +34,12 @@ func init() {
setting.AppName = AppName
setting.AppVer = Version
setting.AppConf = DefaultConf
setting.DryMode = DefaultDryMode
setting.LexerType = DefaultLexer
setting.LifeTime = DefaultLifeTime
setting.PasteBinService = DefaultPasteBin
setting.SysInfo = DefaultSysInfo
setting.BasicDmidecode = DefaultBasicDmidecode
// read config?
}
@ -96,6 +100,13 @@ See rpaste(1)`,
Usage: "Collects general system information (disables stdin and file input)",
Required: false,
},
&cli.BoolFlag{
Name: "dry",
Aliases: []string{"d"},
Value: setting.DryMode,
Usage: "Turns on dry mode, which doesn't paste the output, but shows the data to stdin",
Required: false,
},
&cli.StringFlag{
Name: "pastebin",
Aliases: []string{"p"},