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...") fmt.Println("Uploading...")
resp, err := http.PostForm(rurl.String(), form) 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 // The response comes back as bytes, so we copy the response buffer into io
// and string it out // and string it out

View File

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

View File

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

View File

@ -22,9 +22,11 @@ var (
DefaultLexer = "text" DefaultLexer = "text"
DefaultLifeTime = "1hour" DefaultLifeTime = "1hour"
// This will end up being dynamic in the future // This will end up being dynamic in the future
DefaultPasteBin = "rpaste" DefaultPasteBin = "rpaste"
DefaultSysInfo = false DefaultSysInfo = false
ShortOption = true DefaultDryMode = false
DefaultBasicDmidecode = false
ShortOption = true
) )
// Initialize default settings // Initialize default settings
@ -32,10 +34,12 @@ func init() {
setting.AppName = AppName setting.AppName = AppName
setting.AppVer = Version setting.AppVer = Version
setting.AppConf = DefaultConf setting.AppConf = DefaultConf
setting.DryMode = DefaultDryMode
setting.LexerType = DefaultLexer setting.LexerType = DefaultLexer
setting.LifeTime = DefaultLifeTime setting.LifeTime = DefaultLifeTime
setting.PasteBinService = DefaultPasteBin setting.PasteBinService = DefaultPasteBin
setting.SysInfo = DefaultSysInfo setting.SysInfo = DefaultSysInfo
setting.BasicDmidecode = DefaultBasicDmidecode
// read config? // read config?
} }
@ -96,6 +100,13 @@ See rpaste(1)`,
Usage: "Collects general system information (disables stdin and file input)", Usage: "Collects general system information (disables stdin and file input)",
Required: false, 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{ &cli.StringFlag{
Name: "pastebin", Name: "pastebin",
Aliases: []string{"p"}, Aliases: []string{"p"},