Skip to content

Commit

Permalink
v3.0.0 "The Great Overhaul"
Browse files Browse the repository at this point in the history
=====================================================================

Notice the major version change which comes with breaking changes to
2.x! Reconstructs "library" functions for both python and zsh scwrypts,
with changes to virtualenv naming conventions (you'll need to refresh
all virtualenv with the appropriate scwrypt).

--- Changes ------------------------------

- changed a naming convention across zsh scripts, particularly
  removing underscores where there is no need to avoid naming clash
  (e.g. 'zsh/lib/utils/io.zsh' renames '__STATUS' to 'STATUS')

- moved clients reliant on py.lib.http to the py.lib.http module

- python scripts now rely on py.lib.scwrypts.execute

- updated package.json in zx scripts to include `type = module`

- 'scwrypts --list' commandline argument now includes additional
  relevant data for each scwrypt

- environment variables no longer add themselves to be staged in the
  '.env.template'

--- New Features -------------------------

- new 'use' syntax for disjoint import within zsh scripts; took me
  a very long time to convince myself this would be necessary

- introduced scwrypt "groups" to allow portable module creation;
  (i.e. ability add your own scripts from another repo!)

- py.lib.scwrypts.io provides a combined IO stream for quick, hybrid
  use of input/output files and stdin/stdout

- py.lib.fzf provides a wrapper to provide similar functionality to
  zsh/utils/io.zsh including fzf_(head|tail)

- improved efficiency of various scwrypts; notably reducing runtime
  of scwrypts/environment sync

- improved scwrypts CLI by adding new options for exact scwrypt
  matching, better filtering, and prettier/more-detailed interfaces

--- New Scripts --------------------------

- py/twilio )
    basic SMS integration with twilio
     - send-sms

- py/directus )
    interactive directus GET query
     - get-items

- py/discord )
    post message to discord channel or webhook
     - post-message
  • Loading branch information
wrynegade committed Jun 22, 2023
1 parent 7617c93 commit 76a746a
Show file tree
Hide file tree
Showing 196 changed files with 3,458 additions and 2,039 deletions.
10 changes: 10 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ export AWS_REGION=
export AWS__EFS__LOCAL_MOUNT_POINT=
export AWS__S3__MEDIA_BUCKET=
export AWS__S3__MEDIA_TARGETS=
export DIRECTUS__API_TOKEN=
export DIRECTUS__BASE_URL=
export DISCORD__BOT_TOKEN=
export DISCORD__DEFAULT_AVATAR_URL=
export DISCORD__DEFAULT_CHANNEL_ID=
export I3__BORDER_PIXEL_SIZE=
export I3__DMENU_FONT_SIZE=
export I3__GLOBAL_FONT_SIZE=
Expand All @@ -13,3 +18,8 @@ export LINEAR__API_TOKEN=
export REDIS_AUTH=
export REDIS_HOST=
export REDIS_PORT=
export TWILIO__ACCOUNT_SID=
export TWILIO__API_KEY=
export TWILIO__API_SECRET=
export TWILIO__DEFAULT_PHONE_FROM=
export TWILIO__DEFAULT_PHONE_TO=
13 changes: 13 additions & 0 deletions .env.template.descriptions
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ AWS__EFS__LOCAL_MOUNT_POINT | fully-qualified path to mount the EFS drive
AWS__S3__MEDIA_BUCKET | s3 bucket name and filesystem targets for media backups
AWS__S3__MEDIA_TARGETS |

DIRECTUS__API_TOKEN | details for a directus instance
DIRECTUS__BASE_URL |

DISCORD__BOT_TOKEN | details for discord bot
DISCORD__DEFAULT_AVATAR_URL |
DISCORD__DEFAULT_CHANNEL_ID |

I3__BORDER_PIXEL_SIZE | custom i3 configuration settings
I3__DMENU_FONT_SIZE |
I3__GLOBAL_FONT_SIZE |
Expand All @@ -17,3 +24,9 @@ LINEAR__API_TOKEN | linear.app project management configuration
REDIS_AUTH | redis connection credentials
REDIS_HOST |
REDIS_PORT |

TWILIO__ACCOUNT_SID | twilio account / credentials
TWILIO__API_KEY |
TWILIO__API_SECRET |
TWILIO__DEFAULT_PHONE_FROM |
TWILIO__DEFAULT_PHONE_TO |
42 changes: 0 additions & 42 deletions global/common.zsh

This file was deleted.

Binary file removed global/config.zsh
Binary file not shown.
29 changes: 16 additions & 13 deletions py/data/convert/csv-to-json.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
#!/usr/bin/env python
from argparse import ArgumentParser

from py.lib.data.io import add_io_arguments
from py.lib.data.converter import convert
from py.lib.scwrypts import execute

if __name__ != '__main__':
raise Exception('executable only; must run through scwrypts')
from py.lib.scwrypts.exceptions import ImportedExecutableError

if __name__ != '__main__':
raise ImportedExecutableError()

parser = ArgumentParser(description = 'converts csv into json')
add_io_arguments(parser)
#####################################################################

args = parser.parse_args()
def main(_args, stream):
return convert(
input_stream = stream.input,
input_type = 'csv',
output_stream = stream.output,
output_type = 'json',
)

convert(
input_file = args.input_file,
input_type = 'csv',
output_file = args.output_file,
output_type = 'json',
#####################################################################
execute(main,
description = 'convert csv into json',
parse_args = [],
)
29 changes: 16 additions & 13 deletions py/data/convert/csv-to-yaml.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
#!/usr/bin/env python
from argparse import ArgumentParser

from py.lib.data.io import add_io_arguments
from py.lib.data.converter import convert
from py.lib.scwrypts import execute

if __name__ != '__main__':
raise Exception('executable only; must run through scwrypts')
from py.lib.scwrypts.exceptions import ImportedExecutableError

if __name__ != '__main__':
raise ImportedExecutableError()

parser = ArgumentParser(description = 'converts csv into yaml')
add_io_arguments(parser)
#####################################################################

args = parser.parse_args()
def main(_args, stream):
return convert(
input_stream = stream.input,
input_type = 'csv',
output_stream = stream.output,
output_type = 'yaml',
)

convert(
input_file = args.input_file,
input_type = 'csv',
output_file = args.output_file,
output_type = 'yaml',
#####################################################################
execute(main,
description = 'convert csv into yaml',
parse_args = [],
)
29 changes: 16 additions & 13 deletions py/data/convert/json-to-csv.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
#!/usr/bin/env python
from argparse import ArgumentParser

from py.lib.data.io import add_io_arguments
from py.lib.data.converter import convert
from py.lib.scwrypts import execute

if __name__ != '__main__':
raise Exception('executable only; must run through scwrypts')
from py.lib.scwrypts.exceptions import ImportedExecutableError

if __name__ != '__main__':
raise ImportedExecutableError()

parser = ArgumentParser(description = 'converts csv into json')
add_io_arguments(parser)
#####################################################################

args = parser.parse_args()
def main(_args, stream):
return convert(
input_stream = stream.input,
input_type = 'json',
output_stream = stream.output,
output_type = 'csv',
)

convert(
input_file = args.input_file,
input_type = 'json',
output_file = args.output_file,
output_type = 'csv',
#####################################################################
execute(main,
description = 'convert json into csv',
parse_args = [],
)
29 changes: 16 additions & 13 deletions py/data/convert/json-to-yaml.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
#!/usr/bin/env python
from argparse import ArgumentParser

from py.lib.data.io import add_io_arguments
from py.lib.data.converter import convert
from py.lib.scwrypts import execute

if __name__ != '__main__':
raise Exception('executable only; must run through scwrypts')
from py.lib.scwrypts.exceptions import ImportedExecutableError

if __name__ != '__main__':
raise ImportedExecutableError()

parser = ArgumentParser(description = 'converts json into yaml')
add_io_arguments(parser)
#####################################################################

args = parser.parse_args()
def main(_args, stream):
return convert(
input_stream = stream.input,
input_type = 'json',
output_stream = stream.output,
output_type = 'yaml',
)

convert(
input_file = args.input_file,
input_type = 'json',
output_file = args.output_file,
output_type = 'yaml',
#####################################################################
execute(main,
description = 'convert json into yaml',
parse_args = [],
)
29 changes: 16 additions & 13 deletions py/data/convert/yaml-to-csv.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
#!/usr/bin/env python
from argparse import ArgumentParser

from py.lib.data.io import add_io_arguments
from py.lib.data.converter import convert
from py.lib.scwrypts import execute

if __name__ != '__main__':
raise Exception('executable only; must run through scwrypts')
from py.lib.scwrypts.exceptions import ImportedExecutableError

if __name__ != '__main__':
raise ImportedExecutableError()

parser = ArgumentParser(description = 'converts yaml into csv')
add_io_arguments(parser)
#####################################################################

args = parser.parse_args()
def main(_args, stream):
return convert(
input_stream = stream.input,
input_type = 'yaml',
output_stream = stream.output,
output_type = 'csv',
)

convert(
input_file = args.input_file,
input_type = 'yaml',
output_file = args.output_file,
output_type = 'csv',
#####################################################################
execute(main,
description = 'convert yaml into csv',
parse_args = [],
)
29 changes: 16 additions & 13 deletions py/data/convert/yaml-to-json.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
#!/usr/bin/env python
from argparse import ArgumentParser

from py.lib.data.io import add_io_arguments
from py.lib.data.converter import convert
from py.lib.scwrypts import execute

if __name__ != '__main__':
raise Exception('executable only; must run through scwrypts')
from py.lib.scwrypts.exceptions import ImportedExecutableError

if __name__ != '__main__':
raise ImportedExecutableError()

parser = ArgumentParser(description = 'converts yaml into json')
add_io_arguments(parser)
#####################################################################

args = parser.parse_args()
def main(_args, stream):
return convert(
input_stream = stream.input,
input_type = 'yaml',
output_stream = stream.output,
output_type = 'json',
)

convert(
input_file = args.input_file,
input_type = 'yaml',
output_file = args.output_file,
output_type = 'json',
#####################################################################
execute(main,
description = 'convert yaml into json',
parse_args = [],
)
File renamed without changes.
Loading

0 comments on commit 76a746a

Please sign in to comment.