Adding polybar and dedupbw
This commit is contained in:
parent
52542754c8
commit
6fea3e862b
|
@ -64,12 +64,12 @@
|
||||||
(local alt "Mod1")
|
(local alt "Mod1")
|
||||||
|
|
||||||
;; Set hostname so that we can utilize specific features on different machines
|
;; Set hostname so that we can utilize specific features on different machines
|
||||||
|
(global laptop true)
|
||||||
(awful.spawn.easy_async "hostname" (fn [ stdout stderr reason exit_code ]
|
(awful.spawn.easy_async "hostname" (fn [ stdout stderr reason exit_code ]
|
||||||
(if (= "chris-linuxlaptop\n" stdout)
|
(if (= "chris-linuxlaptop\n" stdout)
|
||||||
(global laptop true)
|
(global laptop true)
|
||||||
(naughty.notify {:text "didn't set"}))))
|
(naughty.notify {:text "didn't set"}))))
|
||||||
(if laptop (naughty.notify {:text "yayyayayayayayyay"}))
|
(if laptop (naughty.notify {:text "laptop detected"}))
|
||||||
(naughty.notify {:text (tostring laptop)})
|
|
||||||
|
|
||||||
;; Table of layouts to cover with awful.layout.inc, order matters.
|
;; Table of layouts to cover with awful.layout.inc, order matters.
|
||||||
(set awful.layout.layouts [
|
(set awful.layout.layouts [
|
||||||
|
|
|
@ -14,9 +14,10 @@
|
||||||
(let [cb (or ?callback (fn [] nil))]
|
(let [cb (or ?callback (fn [] nil))]
|
||||||
(awful.spawn.easy_async_with_shell "pamixer --get-volume-human" cb)))
|
(awful.spawn.easy_async_with_shell "pamixer --get-volume-human" cb)))
|
||||||
|
|
||||||
(if (= "chris-linuxlaptop" (awful.spawn "hostname"))
|
(awful.spawn.easy_async "cat /etc/hostname" (fn [ stdout stderr reason exit_code ]
|
||||||
|
(if (= "chris-linuxlaptop\n" stdout)
|
||||||
(global bwmenu "bwmenu -- -config /home/chris/.dotfiles/rofi/launchers-git/laptop.rasi")
|
(global bwmenu "bwmenu -- -config /home/chris/.dotfiles/rofi/launchers-git/laptop.rasi")
|
||||||
(global bwmenu "bwmenu -- -config /home/chris/.dotfiles/rofi/launchers-git/desktop.rasi"))
|
(global bwmenu "bwmenu -- -config /home/chris/.dotfiles/rofi/launchers-git/desktop.rasi"))))
|
||||||
|
|
||||||
(local keybindings
|
(local keybindings
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/env fish
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
set -U fish_user_paths $HOME/.local/bin $HOME/scripts $HOME/.doom-emacs/bin
|
set -U fish_user_paths $HOME/.local/bin $HOME/scripts $HOME/.doom-emacs/bin $HOME/.emacs.d/bin
|
||||||
set TERM "xterm-256color"
|
set TERM "xterm-256color"
|
||||||
set EDITOR "emacsclient -t -a"
|
set EDITOR "emacsclient -t -a"
|
||||||
set VISUAL "emacsclient -c -a emacs"
|
set VISUAL "emacsclient -c -a emacs"
|
||||||
|
|
|
@ -30,4 +30,4 @@ SETUVAR fish_pager_color_completion:\x1d
|
||||||
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
||||||
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||||
SETUVAR fish_user_paths:/home/chris/\x2elocal/bin\x1e/home/chris/scripts\x1e/home/chris/\x2edoom\x2demacs/bin
|
SETUVAR fish_user_paths:/home/chris/\x2elocal/bin\x1e/home/chris/scripts\x1e/home/chris/\x2edoom\x2demacs/bin\x1e/home/chris/\x2eemacs\x2ed/bin
|
||||||
|
|
212
polybar/config
212
polybar/config
|
@ -21,64 +21,56 @@
|
||||||
background = #282a36
|
background = #282a36
|
||||||
background-alt = #34353e
|
background-alt = #34353e
|
||||||
;foreground = ${xrdb:color7:#222}
|
;foreground = ${xrdb:color7:#222}
|
||||||
foreground = #e3e4e5
|
foreground = #a5a5a9
|
||||||
foreground-alt = #a5a5a9
|
foreground-alt = #e2e4e5
|
||||||
primary = #ff9f43
|
primary = #57c7ff
|
||||||
secondary = #57c7ff
|
secondary = #f3f99d
|
||||||
alert = #ff5c57
|
alert = #ff5c57
|
||||||
|
green= #5af78e
|
||||||
|
|
||||||
[bar/main]
|
[bar/float]
|
||||||
;monitor = ${env:MONITOR:HDMI-1}
|
;monitor = ${env:MONITOR:HDMI-1}
|
||||||
width = 100%
|
width = 100%
|
||||||
height = 27
|
height = 60
|
||||||
; offset-x = 6%
|
;offset-x = 1%
|
||||||
offset-y = 0.5%
|
;offset-y = 1%
|
||||||
radius = 12.0
|
radius = 28.0
|
||||||
fixed-center = true
|
fixed-center = true
|
||||||
bottom = true
|
bottom = true
|
||||||
|
|
||||||
background = ${colors.background}
|
background = ${colors.background}
|
||||||
foreground = ${colors.foreground}
|
foreground = ${colors.foreground}
|
||||||
|
|
||||||
line-size = 2
|
line-size = 3
|
||||||
line-color = ${colors.secondary}
|
line-color = #f00
|
||||||
|
|
||||||
border-size = 4
|
border-size = 15
|
||||||
border-color = #00000000
|
border-color = #00000000
|
||||||
|
|
||||||
padding-left = 0
|
padding-left = 13
|
||||||
padding-right = 2
|
padding-right = 2
|
||||||
|
|
||||||
module-margin-left = 1
|
module-margin-left = 1
|
||||||
module-margin-right = 2
|
module-margin-right = 1
|
||||||
|
|
||||||
font-0 = "fixed:pixelsize=12;1"
|
font-0 = VictorMono Nerd Font Mono:size=20;1
|
||||||
font-1 = "Unifont:style=Sans-Serif:size=12:antialias=false;0"
|
font-1 = unifont:fontformat=truetype:size=19:antialias=false;0
|
||||||
font-2 = "Wuncon Siji:pixelsize=12;1"
|
font-2 = siji:pixelsize=30;1
|
||||||
font-3 = "Recursive Sans Linear Light:size=10;1"
|
font-3 = all-the-icons:size=40;1
|
||||||
font-4 = "Noto Sans:size=10;1"
|
|
||||||
font-5 = "Noto Color Emoji:style=Regular:size=10;1"
|
|
||||||
|
|
||||||
modules-left = xwindow
|
modules-left = exwm-buffer-name
|
||||||
modules-center = date
|
modules-center = date
|
||||||
modules-right = filesystem pulseaudio memory cpu eth temperature powermenu
|
modules-right = filesystem exwm-mail xbacklight pulseaudio memory cpu wlan battery powermenu
|
||||||
|
|
||||||
tray-position = center
|
tray-position = center
|
||||||
tray-detatched = false
|
tray-padding = 5
|
||||||
tray-padding = 4
|
tray-maxsize = 30
|
||||||
tray-maxsize = 16
|
tray-offset-x = -1400
|
||||||
tray-scale = 1
|
|
||||||
tray-offset-x = 200
|
|
||||||
tray-offset-y = 1
|
|
||||||
tray-background = ${colors.background}
|
|
||||||
tray-radius = 12.0
|
|
||||||
|
|
||||||
enable-ipc = true
|
|
||||||
|
|
||||||
;wm-restack = bspwm
|
;wm-restack = bspwm
|
||||||
;wm-restack = i3
|
;wm-restack = i3
|
||||||
|
|
||||||
override-redirect = false
|
;override-redirect = true
|
||||||
|
|
||||||
;scroll-up = bspwm-desknext
|
;scroll-up = bspwm-desknext
|
||||||
;scroll-down = bspwm-deskprev
|
;scroll-down = bspwm-deskprev
|
||||||
|
@ -89,30 +81,24 @@ override-redirect = false
|
||||||
cursor-click = pointer
|
cursor-click = pointer
|
||||||
cursor-scroll = ns-resize
|
cursor-scroll = ns-resize
|
||||||
|
|
||||||
[settings]
|
enable-ipc = true
|
||||||
|
|
||||||
throttle-output = 5
|
[module/exwm-buffer-name]
|
||||||
throttle-output-for = 10
|
type = custom/ipc
|
||||||
throttle-input-for = 30
|
hook-0 = emacsclient -e "(buffer-name)"
|
||||||
|
initial = 1
|
||||||
|
format-foreground = ${colors.primary}
|
||||||
|
|
||||||
screenchange-reload = false
|
[module/exwm-mail]
|
||||||
|
type = custom/ipc
|
||||||
compositing-background = source
|
hook-0 = emacsclient -e "mu4e-alert-mode-line"
|
||||||
compositing-foreground = over
|
initial = 1
|
||||||
compositing-overline = over
|
format-prefix = " "
|
||||||
compositing-underline = over
|
format-prefix-foreground = ${colors.secondary}
|
||||||
compositing-border = over
|
|
||||||
|
|
||||||
;compositing-background = xor
|
|
||||||
;compositing-background = screen
|
|
||||||
;compositing-foreground = source
|
|
||||||
;compositing-border = over
|
|
||||||
|
|
||||||
pseudo-transparency = false
|
|
||||||
|
|
||||||
[module/xwindow]
|
[module/xwindow]
|
||||||
type = internal/xwindow
|
type = internal/xwindow
|
||||||
label = " %title:0:30:...%"
|
label = %title:0:30:...%
|
||||||
|
|
||||||
[module/xkeyboard]
|
[module/xkeyboard]
|
||||||
type = internal/xkeyboard
|
type = internal/xkeyboard
|
||||||
|
@ -140,86 +126,13 @@ label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
|
||||||
label-unmounted = %mountpoint% not mounted
|
label-unmounted = %mountpoint% not mounted
|
||||||
label-unmounted-foreground = ${colors.foreground-alt}
|
label-unmounted-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
; [module/bspwm]
|
|
||||||
; type = internal/bspwm
|
|
||||||
|
|
||||||
; label-focused = %index%
|
|
||||||
; label-focused-background = ${colors.background-alt}
|
|
||||||
; label-focused-underline= ${colors.primary}
|
|
||||||
; label-focused-padding = 2
|
|
||||||
|
|
||||||
; label-occupied = %index%
|
|
||||||
; label-occupied-padding = 2
|
|
||||||
|
|
||||||
; label-urgent = %index%!
|
|
||||||
; label-urgent-background = ${colors.alert}
|
|
||||||
; label-urgent-padding = 2
|
|
||||||
|
|
||||||
; label-empty = %index%
|
|
||||||
; label-empty-foreground = ${colors.foreground-alt}
|
|
||||||
; label-empty-padding = 2
|
|
||||||
|
|
||||||
; Separator in between workspaces
|
|
||||||
; label-separator = |
|
|
||||||
|
|
||||||
; [module/i3]
|
|
||||||
; type = internal/i3
|
|
||||||
; format = <label-state> <label-mode>
|
|
||||||
; index-sort = true
|
|
||||||
; wrapping-scroll = false
|
|
||||||
|
|
||||||
; ; Only show workspaces on the same output as the bar
|
|
||||||
; ;pin-workspaces = true
|
|
||||||
|
|
||||||
; label-mode-padding = 2
|
|
||||||
; label-mode-foreground = #000
|
|
||||||
; label-mode-background = ${colors.primary}
|
|
||||||
|
|
||||||
; ; focused = Active workspace on focused monitor
|
|
||||||
; label-focused = %index%
|
|
||||||
; label-focused-background = ${colors.background-alt}
|
|
||||||
; label-focused-underline= ${colors.primary}
|
|
||||||
; label-focused-padding = 2
|
|
||||||
|
|
||||||
; ; unfocused = Inactive workspace on any monitor
|
|
||||||
; label-unfocused = %index%
|
|
||||||
; label-unfocused-padding = 2
|
|
||||||
|
|
||||||
; ; visible = Active workspace on unfocused monitor
|
|
||||||
; label-visible = %index%
|
|
||||||
; label-visible-background = ${self.label-focused-background}
|
|
||||||
; label-visible-underline = ${self.label-focused-underline}
|
|
||||||
; label-visible-padding = ${self.label-focused-padding}
|
|
||||||
|
|
||||||
; ; urgent = Workspace with urgency hint set
|
|
||||||
; label-urgent = %index%
|
|
||||||
; label-urgent-background = ${colors.alert}
|
|
||||||
; label-urgent-padding = 2
|
|
||||||
|
|
||||||
; ; Separator in between workspaces
|
|
||||||
; ; label-separator = |
|
|
||||||
|
|
||||||
|
|
||||||
; [module/mpd]
|
|
||||||
; type = internal/mpd
|
|
||||||
; format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next>
|
|
||||||
|
|
||||||
; icon-prev =
|
|
||||||
; icon-stop =
|
|
||||||
; icon-play =
|
|
||||||
; icon-pause =
|
|
||||||
; icon-next =
|
|
||||||
|
|
||||||
; label-song-maxlen = 24
|
|
||||||
; label-song-ellipsis = true
|
|
||||||
|
|
||||||
[module/xbacklight]
|
[module/xbacklight]
|
||||||
type = internal/xbacklight
|
type = internal/xbacklight
|
||||||
|
|
||||||
format = <label> <bar>
|
format = <label> <bar>
|
||||||
label = BL
|
label = BL
|
||||||
|
|
||||||
bar-width = 10
|
bar-width = 5
|
||||||
bar-indicator = |
|
bar-indicator = |
|
||||||
bar-indicator-foreground = #fff
|
bar-indicator-foreground = #fff
|
||||||
bar-indicator-font = 2
|
bar-indicator-font = 2
|
||||||
|
@ -238,29 +151,20 @@ card = intel_backlight
|
||||||
[module/cpu]
|
[module/cpu]
|
||||||
type = internal/cpu
|
type = internal/cpu
|
||||||
interval = 2
|
interval = 2
|
||||||
format = <ramp-load> <label>
|
format-prefix = " "
|
||||||
format-prefix = " "
|
|
||||||
format-prefix-foreground = ${colors.foreground-alt}
|
format-prefix-foreground = ${colors.foreground-alt}
|
||||||
format-underline = #f90000
|
|
||||||
label = %percentage:2%%
|
label = %percentage:2%%
|
||||||
|
|
||||||
ramp-load-spacing = 4
|
|
||||||
ramp-load-0 = ▁
|
|
||||||
ramp-load-1 = ▃
|
|
||||||
ramp-load-2 = ▅
|
|
||||||
ramp-load-3 = ▇
|
|
||||||
|
|
||||||
[module/memory]
|
[module/memory]
|
||||||
type = internal/memory
|
type = internal/memory
|
||||||
interval = 2
|
interval = 2
|
||||||
format-prefix = " "
|
format-prefix = " "
|
||||||
format-prefix-foreground = ${colors.foreground-alt}
|
format-prefix-foreground = ${colors.foreground-alt}
|
||||||
format-underline = ${colors.alert}
|
|
||||||
label = %percentage_used%%
|
label = %percentage_used%%
|
||||||
|
|
||||||
[module/wlan]
|
[module/wlan]
|
||||||
type = internal/network
|
type = internal/network
|
||||||
interface = net1
|
interface = wlp3s0
|
||||||
interval = 3.0
|
interval = 3.0
|
||||||
|
|
||||||
format-connected = <ramp-signal> <label-connected>
|
format-connected = <ramp-signal> <label-connected>
|
||||||
|
@ -282,10 +186,9 @@ ramp-signal-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
[module/eth]
|
[module/eth]
|
||||||
type = internal/network
|
type = internal/network
|
||||||
interface = enp0s31f6
|
interface = enp0s20f0u4u2
|
||||||
interval = 3.0
|
interval = 3.0
|
||||||
|
|
||||||
format-connected = <label-connected>
|
|
||||||
format-connected-underline = #55aa55
|
format-connected-underline = #55aa55
|
||||||
format-connected-prefix = " "
|
format-connected-prefix = " "
|
||||||
format-connected-prefix-foreground = ${colors.foreground-alt}
|
format-connected-prefix-foreground = ${colors.foreground-alt}
|
||||||
|
@ -301,17 +204,16 @@ format-disconnected =
|
||||||
type = internal/date
|
type = internal/date
|
||||||
interval = 5
|
interval = 5
|
||||||
|
|
||||||
date = "%a %b %d"
|
date = "%a %b %e, "
|
||||||
date-alt = " %Y-%m-%d"
|
date-alt = " %Y-%m-%d"
|
||||||
|
|
||||||
time = %I:%M %p
|
time = %l:%M %p
|
||||||
time-alt = %I:%M:%S
|
time-alt = %H:%M
|
||||||
|
|
||||||
format-prefix =
|
format-prefix =
|
||||||
format-prefix-foreground = ${colors.foreground-alt}
|
format-prefix-foreground = ${colors.foreground-alt}
|
||||||
format-underline = #0a6cf5
|
|
||||||
|
|
||||||
label = %date% | %time%
|
label = %date%%time%
|
||||||
|
|
||||||
[module/pulseaudio]
|
[module/pulseaudio]
|
||||||
type = internal/pulseaudio
|
type = internal/pulseaudio
|
||||||
|
@ -344,7 +246,7 @@ bar-volume-empty-foreground = ${colors.foreground-alt}
|
||||||
type = internal/alsa
|
type = internal/alsa
|
||||||
|
|
||||||
format-volume = <label-volume> <bar-volume>
|
format-volume = <label-volume> <bar-volume>
|
||||||
label-volume = VOL %percentage%
|
label-volume = VOL
|
||||||
label-volume-foreground = ${root.foreground}
|
label-volume-foreground = ${root.foreground}
|
||||||
|
|
||||||
format-muted-prefix = " "
|
format-muted-prefix = " "
|
||||||
|
@ -370,7 +272,7 @@ bar-volume-empty-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
[module/battery]
|
[module/battery]
|
||||||
type = internal/battery
|
type = internal/battery
|
||||||
battery = BAT0
|
battery = BAT1
|
||||||
adapter = ADP1
|
adapter = ADP1
|
||||||
full-at = 98
|
full-at = 98
|
||||||
|
|
||||||
|
@ -380,8 +282,8 @@ format-charging-underline = #ffb52a
|
||||||
format-discharging = <animation-discharging> <label-discharging>
|
format-discharging = <animation-discharging> <label-discharging>
|
||||||
format-discharging-underline = ${self.format-charging-underline}
|
format-discharging-underline = ${self.format-charging-underline}
|
||||||
|
|
||||||
format-full-prefix = " "
|
format-full-prefix = " "
|
||||||
format-full-prefix-foreground = ${colors.foreground-alt}
|
format-full-prefix-foreground = ${colors.green}
|
||||||
format-full-underline = ${self.format-charging-underline}
|
format-full-underline = ${self.format-charging-underline}
|
||||||
|
|
||||||
ramp-capacity-0 =
|
ramp-capacity-0 =
|
||||||
|
@ -449,8 +351,16 @@ menu-2-0-exec = sudo poweroff
|
||||||
menu-2-1 = cancel
|
menu-2-1 = cancel
|
||||||
menu-2-1-exec = menu-open-0
|
menu-2-1-exec = menu-open-0
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
screenchange-reload = true
|
||||||
|
compositing-background = xor
|
||||||
|
;compositing-background = screen
|
||||||
|
;compositing-foreground = source
|
||||||
|
;compositing-border = over
|
||||||
|
pseudo-transparency = true
|
||||||
|
|
||||||
[global/wm]
|
[global/wm]
|
||||||
margin-top = 0
|
margin-top = 3
|
||||||
margin-bottom = 0
|
margin-bottom = 2
|
||||||
|
|
||||||
; vim:ft=dosini
|
; vim:ft=dosini
|
||||||
|
|
78
scripts/dedupbw
Executable file
78
scripts/dedupbw
Executable file
|
@ -0,0 +1,78 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
# dedup.py
|
||||||
|
# Removes duplicates from Bitwarden export .csv
|
||||||
|
# 2019-02-09 5erif
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import hashlib
|
||||||
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
|
# Field ordinals in Bitwarden CSV
|
||||||
|
FOLDER = 0
|
||||||
|
FAVORITE = 1
|
||||||
|
TYPE = 2
|
||||||
|
NAME = 3
|
||||||
|
NOTES = 4
|
||||||
|
FIELDS = 5
|
||||||
|
URI = 6
|
||||||
|
USERNAME = 7
|
||||||
|
PASSWORD = 8
|
||||||
|
TOTP = 9
|
||||||
|
|
||||||
|
def main(argv):
|
||||||
|
|
||||||
|
if len(argv) < 1:
|
||||||
|
print('Missing input file path')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
in_file_path = argv[0]
|
||||||
|
out_file_path = in_file_path[0:(len(in_file_path)-4)]+'_out.csv'
|
||||||
|
rem_file_path = in_file_path[0:(len(in_file_path)-4)]+'_rem.csv'
|
||||||
|
completed_lines_hash = set()
|
||||||
|
line_number = -1
|
||||||
|
write_count = 0
|
||||||
|
cache = ''
|
||||||
|
|
||||||
|
out_file = open(out_file_path, 'w', encoding = 'utf8')
|
||||||
|
rem_file = open(rem_file_path, 'w', encoding = 'utf8')
|
||||||
|
for line in open(in_file_path, 'r', encoding = 'utf8'):
|
||||||
|
line_number += 1
|
||||||
|
fields = line.split(',')
|
||||||
|
if len(fields) < 10:
|
||||||
|
# Add previous line if short
|
||||||
|
line = cache.strip('\n') + line
|
||||||
|
cache = line
|
||||||
|
fields = line.split(',')
|
||||||
|
if len(fields) > 9:
|
||||||
|
print(f'Recovered with line {line_number}:\n{line}')
|
||||||
|
cache = ''
|
||||||
|
else:
|
||||||
|
print(f'Missing fields in line {line_number}:\n{line}')
|
||||||
|
rem_file.write(line)
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
cache = ''
|
||||||
|
if line_number != 0:
|
||||||
|
domain = urlparse(fields[URI]).netloc
|
||||||
|
if len(domain) > 0:
|
||||||
|
fields[URI] = domain
|
||||||
|
token = fields[URI] + fields[USERNAME] + fields[PASSWORD]
|
||||||
|
hashValue = hashlib.md5(token.rstrip().encode('utf-8')).hexdigest()
|
||||||
|
if hashValue not in completed_lines_hash:
|
||||||
|
out_file.write(line)
|
||||||
|
completed_lines_hash.add(hashValue)
|
||||||
|
write_count += 1
|
||||||
|
else:
|
||||||
|
rem_file.write(line)
|
||||||
|
# Uncomment for verbose mode
|
||||||
|
# print(f'Skipping duplicate on line {line_number}:\n{line}')
|
||||||
|
out_file.close()
|
||||||
|
rem_file.close()
|
||||||
|
|
||||||
|
dup_count = line_number - write_count
|
||||||
|
print(f'\nOutput file: {out_file_path}\n{write_count} unique entries saved')
|
||||||
|
print(f'\n{dup_count} duplicates saved to {rem_file_path}')
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main(sys.argv[1:])
|
Loading…
Reference in a new issue