Files
herolib/lib/core/herocmds/imagedownsize.v
Mahmoud Emad 4c01c88b85 WIP: Building hero
- The work is still in progress

Co-authored-by: supermario <mariobassem12@gmail.com>
2025-01-02 19:01:37 +02:00

69 lines
1.5 KiB
V

module herocmds
import freeflowuniverse.herolib.conversiontools.imagemagick
import cli { Command, Flag }
import os
import freeflowuniverse.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)
}
}