summaryrefslogtreecommitdiff
path: root/src/get_args.py
blob: 45f41cfa69508265e9c24ecdc411ef540c3049c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import user_interface
import manage_saves
import os
from rich import print


def get_args(args, walls_dir) -> tuple:
    
    # arguments that can be passed into program
    VALID_ARGS = ['-r', '-p', '--initialize', '--reconfigure']
    
    initialize = False
    reconfigure = False
    color_save = None
    
    # load saved palette
    if '-p' in args:
        index = args.index('-p')
        try:
            if os.path.isfile(args[index + 1]):
                 color_save = manage_saves.load_color_palette(args[index + 1])
            else:
                 print(f'[bold red] Error!! invalid argument {args[index + 1]}. -p should be followed by a color palette save')
                 exit(2)
        except IndexError:
            print('[bold red]Error!! -p should be followed by location of a color palette save')
            usage(args)
            exit(2)
   
    if '-r' in args:
        img_path = user_interface.pickRandomWallpaper(walls_dir)
    else:
        img_path = f"{os.getcwd()}/{args[1]}"
        if not os.path.exists(img_path) and\
                args[1] not in VALID_ARGS:
            print(f'[bold red]ERROR: invalid image path {os.getcwd()}/{args[1]}')
            exit(3)

    if '--initialize' in args:
        initialize = True
    if '--reconfigure' in args:
        reconfigure = True
    return img_path, initialize, reconfigure, color_save


def usage(args) -> None:
    print(f"""Instant Rice - An automatic theming utilitiy

Usage: python3 {args[0]} [Relative Image Path] [-r, --initialize, --reconfigure, --dmenu, --nolock]

Example: rice ships.png --dmenu --nolock

Optinal Arguments:
-r              Pick a random image from the wallpaper folder specified in paths.py
--initialize    Check all configurations files are present and written in a way compatible with instant rice
--reconfigure   launch a TUI interface to change configuration settings of DE components (i3, polybar, rofi, etc)
--dmenu         generate configuration for dmenu in i3 configuration (update dmenu keyboard shortcut)
--nolock        skip generating image for i3lock

It is recommended to alias Instant Rice to a convenient command in your shells config.
For bash this would look like

alias rice='/home/chandler/Documents/InstantRice/src/instant_rice.py'

visit chqn.xyz for other projects""")