Files
herolib/lib/core/herocmds/imagedownsize.v
2025-10-12 12:30:19 +03:00

69 lines
1.5 KiB
V

module herocmds
import incubaid.herolib.conversiontools.imagemagick
import cli { Command, Flag }
import os
import incubaid.herolib.ui.console
// const wikipath = os.dir(@FILE) + '/wiki'
pub fn cmd_imagedownsize(mut cmdroot Command) {
mut cmd_run := Command{
name: 'image_downsize'
description: 'walk over current director or specified one and downsize all images'
required_args: 0
execute: cmd_imagedownsize_execute
}
cmd_run.add_flag(Flag{
flag: .string
required: false
name: 'path'
abbrev: 'p'
description: 'If not in current directory.'
})
cmd_run.add_flag(Flag{
flag: .string
required: false
name: 'backupdir'
abbrev: 'b'
description: 'What is the backup dir if any.'
})
cmd_run.add_flag(Flag{
flag: .bool
required: false
name: 'convertpng'
description: 'will convert png to jpg.'
})
cmd_run.add_flag(Flag{
flag: .bool
required: false
name: 'redo'
abbrev: 'r'
description: 'will do the checks again.'
})
cmdroot.add_command(cmd_run)
}
fn cmd_imagedownsize_execute(cmd Command) ! {
mut backupdir := cmd.flags.get_string('backupdir') or { '' }
mut path := cmd.flags.get_string('path') or { '' }
if path == '' {
path = os.getwd()
}
imagemagick.downsize(
path: path
backupdir: backupdir
redo: cmd.flags.get_bool('redo') or { false }
convertpng: cmd.flags.get_bool('convertpng') or { false }
) or {
print_backtrace()
console.print_stderr(err.str())
panic(err)
}
}