Merge branch 'master' of git.awful.club:jowj/chd

master
Josiah Ledbetter 1 year ago
commit fcb01322c6

@ -11,7 +11,7 @@ set completion-ignore-case on # ignore case when tab-completing
source ~/.paths
export VISUAL=emacsclient
export editor=emacsclient
export EDITOR=emacsclient
# blatantly steal micah's ls aliases because they make SO MUCH SENSE omg.
alias python="python3"
@ -70,37 +70,46 @@ if [ -x /usr/bin/dircolors ]; then
fi
# handle key management through `keychain` because its great
## first set up gpg agent
[ -f ~/.gpg-agent-info ] && source ~/.gpg-agent-info
if [ -S "${GPG_AGENT_INFO%%:*}" ]; then
export GPG_AGENT_INFO
else
eval $( gpg-agent --daemon )
fi
## then configure keychain
eval $(keychain --eval --quiet ~/.ssh/{awful-git,github,digitalocean,home-net})
eval $(keychain --gpg2 --agents gpg)
# host specific configurations:
if [ "$HOSTNAME" = "nixon" ]; then
printf 'on nixon, applying nixOS config'
setxkbmap -option "ctrl:nocaps"
else
printf 'regular config\n'
fi
if [[ $(shopt login_shell | cut -f2) == "on" ]]
then
: # this is a no op cmd in bash, i guess. GOD.
# use pyenv where appropriate:
if [ "$HOSTNAME" = "popling" ]; then
printf 'on home, applying home config'
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
else
printf 'regular config'
if [ "$HOSTNAME" = "hoyden" ]; then
printf 'on hoyden, applying nixOS config \n'
setxkbmap -option "ctrl:nocaps"
fortune ~/bin/fortunate/invisiblestates/invisiblestates | fold -w 80 -s
else
printf 'regular config\n'
fi
# this looks like garbage but its just color initation and termination
export PS1="\t \[\e[34m\]ǰ \[\e[91m\]☭\[\e[0m\] "
export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
echo ""
echo " /'-./\_ | $HOSTNAME"
echo " : ||,> |"
echo " \.-'|| | $0"
echo -e "\e[31m || BURIED\e[0m |"
echo -e "\e[31m || HATCHET\e[0m | $OSTYPE"
echo -e "\e[31m ||\e[0m |"
echo ""
fi
# this looks like garbage but its just color initation and termination
export PS1="\t \[\e[34m\]ǰ \[\e[91m\]☭\[\e[0m\] "
export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
echo ""
echo " /'-./\_ | $HOSTNAME"
echo " : ||,> |"
echo " \.-'|| | $0"
echo -e "\e[31m || BURIED\e[0m |"
echo -e "\e[31m || HATCHET\e[0m | $OSTYPE"
echo -e "\e[31m ||\e[0m |"
echo ""

@ -106,7 +106,7 @@ theme.titlebar_maximized_button_normal_active = themes_path.."default/titlebar/m
theme.titlebar_maximized_button_focus_active = themes_path.."default/titlebar/maximized_focus_active.png"
-- i edited this thing
theme.wallpaper = "~/.config/awesome/Hi_Fi_Girl_Remix_by_cycloidbeta.jpg"
theme.wallpaper = "~/network-share/sainthood/homes/josiah/Photos/backgrounds/convenience store [3840x2160].png"
theme.awesome_icon = "~/.config/awesome/tiny-purple-bat.png"
-- You can use your own layout icons like this:

@ -1,31 +1,167 @@
-- If LuaRocks is installed, make sure that packages installed through it are
-- If LuaRocks is installed, make sure that packages installed through it are
-- found (e.g. lgi). If LuaRocks is not installed, do nothing.
pcall(require, "luarocks.loader")
-- lain stuff
local lain = require("lain")
local dpi = require("beautiful.xresources").apply_dpi
-- Standard awesome library
local gears = require("gears")
local awful = require("awful")
require("awful.autofocus")
-- Widget and layout library
local wibox = require("wibox")
-- Theme handling library
local beautiful = require("beautiful")
-- Notification library
local naughty = require("naughty")
local menubar = require("menubar")
local hotkeys_popup = require("awful.hotkeys_popup")
-- Enable hotkeys help widget for VIM and other apps
-- when client with a matching name is opened:
require("awful.hotkeys_popup.keys")
-- volume import
local volume_widget = require("awesome-wm-widgets.volume-widget.volume")
-- Shit to enable the use of lain themes and templates
local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility
local theme = {}
theme.dir = os.getenv("HOME") .. "/.config/awesome/themes/copland"
theme.wallpaper = theme.dir .. "/wall.png"
theme.font = "Terminus 10.5"
theme.fg_normal = "#BBBBBB"
theme.fg_focus = "#78A4FF"
theme.bg_normal = "#111111"
theme.bg_focus = "#111111"
theme.fg_urgent = "#000000"
theme.bg_urgent = "#FFFFFF"
theme.border_width = dpi(1)
theme.border_normal = "#141414"
theme.border_focus = "#93B6FF"
theme.taglist_fg_focus = "#FFFFFF"
theme.taglist_bg_focus = "#111111"
theme.taglist_bg_normal = "#111111"
theme.titlebar_bg_normal = "#191919"
theme.titlebar_bg_focus = "#262626"
theme.menu_height = dpi(16)
theme.menu_width = dpi(130)
theme.tasklist_disable_icon = true
theme.awesome_icon = theme.dir .."/icons/awesome.png"
theme.menu_submenu_icon = theme.dir .. "/icons/submenu.png"
theme.taglist_squares_sel = theme.dir .. "/icons/square_unsel.png"
theme.taglist_squares_unsel = theme.dir .. "/icons/square_unsel.png"
theme.vol = theme.dir .. "/icons/vol.png"
theme.vol_low = theme.dir .. "/icons/vol_low.png"
theme.vol_no = theme.dir .. "/icons/vol_no.png"
theme.vol_mute = theme.dir .. "/icons/vol_mute.png"
theme.disk = theme.dir .. "/icons/disk.png"
theme.ac = theme.dir .. "/icons/ac.png"
theme.bat = theme.dir .. "/icons/bat.png"
theme.bat_low = theme.dir .. "/icons/bat_low.png"
theme.bat_no = theme.dir .. "/icons/bat_no.png"
theme.play = theme.dir .. "/icons/play.png"
theme.pause = theme.dir .. "/icons/pause.png"
theme.stop = theme.dir .. "/icons/stop.png"
theme.layout_tile = theme.dir .. "/icons/tile.png"
theme.layout_tileleft = theme.dir .. "/icons/tileleft.png"
theme.layout_tilebottom = theme.dir .. "/icons/tilebottom.png"
theme.layout_tiletop = theme.dir .. "/icons/tiletop.png"
theme.layout_fairv = theme.dir .. "/icons/fairv.png"
theme.layout_fairh = theme.dir .. "/icons/fairh.png"
theme.layout_spiral = theme.dir .. "/icons/spiral.png"
theme.layout_dwindle = theme.dir .. "/icons/dwindle.png"
theme.layout_max = theme.dir .. "/icons/max.png"
theme.layout_fullscreen = theme.dir .. "/icons/fullscreen.png"
theme.layout_magnifier = theme.dir .. "/icons/magnifier.png"
theme.layout_floating = theme.dir .. "/icons/floating.png"
theme.useless_gap = 0
theme.titlebar_close_button_focus = theme.dir .. "/icons/titlebar/close_focus.png"
theme.titlebar_close_button_normal = theme.dir .. "/icons/titlebar/close_normal.png"
theme.titlebar_ontop_button_focus_active = theme.dir .. "/icons/titlebar/ontop_focus_active.png"
theme.titlebar_ontop_button_normal_active = theme.dir .. "/icons/titlebar/ontop_normal_active.png"
theme.titlebar_ontop_button_focus_inactive = theme.dir .. "/icons/titlebar/ontop_focus_inactive.png"
theme.titlebar_ontop_button_normal_inactive = theme.dir .. "/icons/titlebar/ontop_normal_inactive.png"
theme.titlebar_sticky_button_focus_active = theme.dir .. "/icons/titlebar/sticky_focus_active.png"
theme.titlebar_sticky_button_normal_active = theme.dir .. "/icons/titlebar/sticky_normal_active.png"
theme.titlebar_sticky_button_focus_inactive = theme.dir .. "/icons/titlebar/sticky_focus_inactive.png"
theme.titlebar_sticky_button_normal_inactive = theme.dir .. "/icons/titlebar/sticky_normal_inactive.png"
theme.titlebar_floating_button_focus_active = theme.dir .. "/icons/titlebar/floating_focus_active.png"
theme.titlebar_floating_button_normal_active = theme.dir .. "/icons/titlebar/floating_normal_active.png"
theme.titlebar_floating_button_focus_inactive = theme.dir .. "/icons/titlebar/floating_focus_inactive.png"
theme.titlebar_floating_button_normal_inactive = theme.dir .. "/icons/titlebar/floating_normal_inactive.png"
theme.titlebar_maximized_button_focus_active = theme.dir .. "/icons/titlebar/maximized_focus_active.png"
theme.titlebar_maximized_button_normal_active = theme.dir .. "/icons/titlebar/maximized_normal_active.png"
theme.titlebar_maximized_button_focus_inactive = theme.dir .. "/icons/titlebar/maximized_focus_inactive.png"
theme.titlebar_maximized_button_normal_inactive = theme.dir .. "/icons/titlebar/maximized_normal_inactive.png"
-- lain related
theme.layout_centerfair = theme.dir .. "/icons/centerfair.png"
theme.layout_termfair = theme.dir .. "/icons/termfair.png"
theme.layout_centerwork = theme.dir .. "/icons/centerwork.png"
local markup = lain.util.markup
local blue = theme.fg_focus
local red = "#EB8F8F"
local green = "#8FEB8F"
-- ALSA volume bar
local volicon = wibox.widget.imagebox(theme.vol)
theme.volume = lain.widget.alsabar {
width = dpi(59), border_width = 0, ticks = true, ticks_size = dpi(6),
notification_preset = { font = theme.font },
--togglechannel = "IEC958,3",
settings = function()
if volume_now.status == "off" then
volicon:set_image(theme.vol_mute)
elseif volume_now.level == 0 then
volicon:set_image(theme.vol_no)
elseif volume_now.level <= 50 then
volicon:set_image(theme.vol_low)
else
volicon:set_image(theme.vol)
end
end,
colors = {
background = theme.bg_normal,
mute = red,
unmute = theme.fg_normal
}
}
theme.volume.tooltip.wibox.fg = theme.fg_focus
theme.volume.bar:buttons(my_table.join (
awful.button({}, 1, function()
awful.spawn(string.format("%s -e alsamixer", awful.util.terminal))
end),
awful.button({}, 2, function()
os.execute(string.format("%s set %s 100%%", theme.volume.cmd, theme.volume.channel))
theme.volume.update()
end),
awful.button({}, 3, function()
os.execute(string.format("%s set %s toggle", theme.volume.cmd, theme.volume.togglechannel or theme.volume.channel))
theme.volume.update()
end),
awful.button({}, 4, function()
os.execute(string.format("%s set %s 1%%+", theme.volume.cmd, theme.volume.channel))
theme.volume.update()
end),
awful.button({}, 5, function()
os.execute(string.format("%s set %s 1%%-", theme.volume.cmd, theme.volume.channel))
theme.volume.update()
end)
))
local volumebg = wibox.container.background(theme.volume.bar, "#474747", gears.shape.rectangle)
local volumewidget = wibox.container.margin(volumebg, dpi(2), dpi(7), dpi(4), dpi(4))
-- game mode import and customization
local game_widget = require("awesome-wm-widgets.demomode-widget.demomode")
-- screen RESOLUTION import and customization
local screen_widget = require("awesome-wm-widgets.gamemode-widget.gamemode")
-- limit notification size so they don't blow up your whole goddamn screen
naughty.config.defaults['icon_size'] = 100
-- {{{ Error handling
-- Check if awesome encountered an error during startup and fell back to
@ -225,8 +361,8 @@ awful.screen.connect_for_each_screen(function(s)
mykeyboardlayout,
wibox.widget.systray(),
mytextclock,
volume_widget({display_notification = true}),
battery_widget,
volicon,
volumewidget,
s.mylayoutbox,
},
}
@ -252,7 +388,7 @@ globalkeys = gears.table.join(
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
{description = "go back", group = "tag"}),
awful.key({ "Mod1", }, "Tab",
awful.key({ "Control","Mod1", "Shift", "Mod4"}, "o",
function ()
awful.client.focus.byidx( 1)
end,
@ -276,7 +412,7 @@ globalkeys = gears.table.join(
{description = "focus the next screen", group = "screen"}),
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
{description = "focus the previous screen", group = "screen"}),
awful.key({ modkey, }, "u", awful.client.urgent.jumpto,
awful.key({ "Control","Mod1", "Shift", "Mod4" }, "u", awful.client.urgent.jumpto,
{description = "jump to urgent client", group = "client"}),
awful.key({ modkey, }, "j",
function ()
@ -334,6 +470,7 @@ globalkeys = gears.table.join(
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end,
{description = "select previous", group = "layout"}),
-- this will restore a client on the active tag + focus it
awful.key({ "Control","Mod1", "Shift", "Mod4" }, "n",
function ()
local c = awful.client.restore()
@ -350,7 +487,9 @@ globalkeys = gears.table.join(
awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end,
{description = "run prompt", group = "launcher"}),
awful.key({ modkey }, "x",
-- This is maybe something usefull for folks but honestly always gets in my way.
awful.key({ modkey }, "|",
function ()
awful.prompt.run {
prompt = "Run Lua code: ",
@ -358,7 +497,8 @@ globalkeys = gears.table.join(
exe_callback = awful.util.eval,
history_path = awful.util.get_cache_dir() .. "/history_eval"
}
end))
end)
)
-- {description = "lua execute prompt", group = "awesome"}),
-- Menubar
-- awful.key({ modkey }, "p", function() menubar.show() end,

@ -0,0 +1,16 @@
[Unit]
Description=Runs the birdtray process.
After=network.target
[Service]
ExecStart=/run/current-system/sw/bin/birdtray
Restart=always
RestartSec=10
Environment=DISPLAY=:0
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=default.target

@ -0,0 +1,10 @@
[Unit]
Description=Run docker system prune to clear up reserved space. Its super dumb I have to do this.
After=network.target
[Service]
ExecStart=docker system prune -a -f
TimeoutStartSec=3600
[Install]
WantedBy=default.target

@ -0,0 +1,9 @@
[Unit]
Description=Run docker system prune every week.
[Timer]
OnBootSec=30min
OnUnitActiveSec=1w
[Install]
WantedBy=timers.target

@ -3,7 +3,6 @@ Description=runs the nm applet for the system tray
After=network.target
[Service]
User=josiah
ExecStart=/run/current-system/sw/bin/nm-applet
LimitNOFILE=1024

@ -0,0 +1,10 @@
[Unit]
Description=Run offlineimap with my specifications
After=network.target
[Service]
ExecStart=/run/current-system/sw/bin/docker run -v /home/josiah/.config/offlineimap/:/mnt/config -v /home/josiah/qj/fastmail:/mnt/mail -v /home/josiah/qj/mail.log:/mnt/log -e MAILLOG=TRUE maxkratz/offlineimap:latest
TimeoutStartSec=3600
[Install]
WantedBy=default.target

@ -0,0 +1,9 @@
[Unit]
Description=Run offlineimap every 30 minutes
[Timer]
OnBootSec=30min
OnUnitActiveSec=1day
[Install]
WantedBy=timers.target

@ -0,0 +1,16 @@
[Unit]
Description=runs the nm applet for the system tray
After=network.target
[Service]
ExecStart=/run/current-system/sw/bin/rsibreak
LimitNOFILE=1024
Restart=always
RestartSec=10
Environment=DISPLAY=:0
PermissionsStartOnly=true
[Install]
WantedBy=default.target

@ -4,7 +4,6 @@ After=network.target
Wants=tailscaled.service
[Service]
User=josiah
ExecStart=/home/josiah/go/bin/tailscale-systray
LimitNOFILE=1024

@ -12,9 +12,12 @@
'(epg-gpg-program "/usr/local/bin/gpg")
'(global-hl-line-mode t)
'(org-agenda-files
'("/home/josiah/dhd/org/big-bend-notes.org" "/home/josiah/dhd/org/documentation.org" "/home/josiah/dhd/org/finances.org" "/home/josiah/dhd/org/fitness.org" "/home/josiah/dhd/org/housing.org" "/home/josiah/dhd/org/hoyden.org" "/home/josiah/dhd/org/jlj-template.org" "/home/josiah/dhd/org/pagedout.org" "/home/josiah/dhd/org/pagedout2.org" "/home/josiah/dhd/org/personal.org" "/home/josiah/dhd/org/refile-beorg.org" "/home/josiah/dhd/org/someday.org" "/home/josiah/dhd/org/stjohns.org" "/home/josiah/dhd/org/webwiki.org" "/home/josiah/dhd/org/work.org"))
'("/home/josiah/dhd/org/big-bend-notes.org" "/home/josiah/dhd/org/documentation.org" "/home/josiah/dhd/org/finances.org" "/home/josiah/dhd/org/fitness.org" "/home/josiah/dhd/org/housing.org" "/home/josiah/dhd/org/hoyden.org" "/home/josiah/dhd/org/interview-notes.org" "/home/josiah/dhd/org/jlj-template.org" "/home/josiah/dhd/org/pagedout.org" "/home/josiah/dhd/org/pagedout2.org" "/home/josiah/dhd/org/personal.org" "/home/josiah/dhd/org/refile-beorg.org" "/home/josiah/dhd/org/someday.org" "/home/josiah/dhd/org/stjohns-trello.org" "/home/josiah/dhd/org/stjohns.org" "/home/josiah/dhd/org/vehicles.org" "/home/josiah/dhd/org/webwiki.org" "/home/josiah/dhd/org/work.org"))
'(org-trello-current-prefix-keybinding "C-c o" nil (org-trello))
'(org-trello-files '("~/dhd/org/stjohns-trello.org") nil (org-trello))
'(package-selected-packages
'(python-black rust-mode company lsp-mode nix-mode markdown-mode flycheck s lsp-pyright ido-vertical-mode dash-functional region-bindings-mode jinja2-mode dockerfile-mode sudo-edit modus-themes org-caldav json-mode pdf-tools org-special-block-extras neotree sr-speedbar lsp-python-ms fira-code-mode yasnippet org-pdftools phps-mode projectile webfeeder znc pinboard yaml-mode which-key web-mode virtualenvwrapper use-package twittering-mode try smex racer powershell poetry pipenv ox-reveal outline-magic org-pdfview org-bullets ob-restclient multiple-cursors magit lua-mode lsp-ui iedit helm flycheck-rust exec-path-from-shell eglot edit-indirect company-lsp ansible ace-window)))
'(mu4e org-trello python-black rust-mode company lsp-mode nix-mode markdown-mode flycheck s lsp-pyright ido-vertical-mode dash-functional region-bindings-mode jinja2-mode dockerfile-mode sudo-edit modus-themes org-caldav json-mode pdf-tools org-special-block-extras neotree sr-speedbar lsp-python-ms fira-code-mode yasnippet org-pdftools phps-mode projectile webfeeder znc pinboard yaml-mode which-key web-mode virtualenvwrapper use-package twittering-mode try smex racer powershell poetry pipenv ox-reveal outline-magic org-pdfview org-bullets ob-restclient multiple-cursors magit lua-mode lsp-ui iedit helm flycheck-rust exec-path-from-shell eglot edit-indirect company-lsp ansible ace-window))
'(request-backend 'url-retrieve))
'(znc-servers
`(("bouncer.awful.club" 5000 t
((freenode "blindidiotgod/freenode" ,znc-password)

@ -8,6 +8,7 @@
(setq package-archives
'(("melpa" . "https://melpa.org/packages/")
("melpa-stable" . "http://melpa-stable.milkbox.net/packages/")
("gnu" . "http://elpa.gnu.org/packages/")
("elpy" . "http://jorgenschaefer.github.io/packages/")))

@ -247,6 +247,27 @@
(use-package dockerfile-mode
:ensure t)
;; add weird mu4e path to emacs
;; THIS IS A HARD CODED NIX DERIV rather than something better. be careful.
;; I expect this to break a decent amount
(when (string= (system-name) "hoyden")
(add-to-list 'load-path "~/.emacs.d/src/mu4e")
(require 'mu4e)
(require 'mu4e-view-gnus) ; this is required on nixos for some reason; maybe in other places? if you don't, you can't view messages
(setq mail-user-agent 'mu4e-user-agent)
;; use 'fancy' non-ascii characters in various places in mu4e
(setq mu4e-use-fancy-chars t)
;; attempt to show images when viewing messages
(setq mu4e-view-show-images t))
(defun magit-add-current-buffer ()
"Adds (with force) the file from the current buffer to the git repo"
(interactive)
(shell-command (concat "git add -f "
(shell-quote-argument buffer-file-name))))
(server-start)
;;; jlj-generic.el ends here

@ -102,6 +102,12 @@
:ensure t
:after org)
(use-package org-trello
:ensure t
:after org
:config
(custom-set-variables '(org-trello-files '("~/dhd/org/stjohns-trello.org"))))
;; configure the org protocol
(org-load-modules-maybe t)
(require 'org-protocol)

Binary file not shown.

@ -0,0 +1,6 @@
default-cache-ttl 31536000
max-cache-ttl 31536000
log-file /var/log/gpg-agent
debug-level basic
pinentry-program /run/current-system/sw/bin/pinentry
#use-agent # commented this out. I did a system upgrade and this argument became inactive.

@ -2,9 +2,9 @@
export AGARES=${AGARES:-"$HOME/.agares"}
# guix stuff
export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
export GUIX_PROFILE="$HOME/.guix-profile"
source "$GUIX_PROFILE/etc/profile"
# export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
# export GUIX_PROFILE="$HOME/.guix-profile"
# source "$GUIX_PROFILE/etc/profile"
# fuck with nix stuff
export XDG_DATA_DIRS="/home/josiah/.nix-profile/share:$XDG_DATA_DIRS"
@ -17,5 +17,5 @@ export PATH=/usr/local/share/python:$PATH
export PATH=/Users/jowj/Library/Python/3.6/bin:$PATH
export PATH=/home/josiah/.local/bin:$PATH
export PATH=/home/josiah/.gem/ruby/2.6.0/bin:$PATH
export PATH=/home/josiah/.config/guix/current/bin/:$PATH
# export PATH=/home/josiah/.config/guix/current/bin/:$PATH
export PATH=/home/josiah/go/bin:$PATH

@ -0,0 +1 @@
xrandr --output DP-1 --mode 2560x1440 --pos 0x0 --rotate normal --primary --output DP-2 --mode 1920x1200 --left-of DP-1

@ -0,0 +1,64 @@
#!/usr/bin/env python3
"""Backup digikam files / dbs so I don't lose everything I care about."""
import argparse
import sys
import shutil
FILES = [
"/home/josiah/.config/digikam_oauthrc",
"/home/josiah/.config/digikamrc",
"/home/josiah/.config/digikam_systemrc",
]
DIRECTORIES = [
"/home/josiah/apps/digikam/"
]
DEST = "/home/josiah/network-share/sainthood/homes/josiah/backups/digikam/"
def resolvepath(path):
"""Resolve and normalize a path
1. Handle tilde expansion; turn ~/.ssh into /home/user/.ssh and
~otheruser/bin to /home/otheruser/bin
2. Normalize the path so that it doesn't contain relative segments, turning
e.g. /usr/local/../bin to /usr/bin
3. Get the real path of the actual file, resolving symbolic links
"""
return os.path.realpath(os.path.normpath(os.path.expanduser(path)))
def idb_excepthook(type, value, tb):
"""Call an interactive debugger in post-mortem mode
If you do "sys.excepthook = idb_excepthook", then an interactive debugger
will be spawned at an unhandled exception
"""
if hasattr(sys, 'ps1') or not sys.stderr.isatty():
sys.__excepthook__(type, value, tb)
else:
import pdb, traceback
traceback.print_exception(type, value, tb)
print
pdb.pm()
def main(*args, **kwargs):
parser = argparse.ArgumentParser(
description="")
parser.add_argument(
"--debug", "-d", action='store_true', help="Include debugging output")
parsed = parser.parse_args()
if parsed.debug:
sys.excepthook = idb_excepthook
for item in FILES:
shutil.copy2(item, DEST)
for item in DIRECTORIES:
shutil.copytree(item, DEST, copy_function=shutil.copy2, dirs_exist_ok=True)
if __name__ == "__main__":
sys.exit(main(*sys.argv))
Loading…
Cancel
Save