admin script

class admin.Admin(completekey='tab', stdin=None, stdout=None)

Bases: cmd.Cmd

compile_frontend()

Compile sass to css and run npm build task

copy_main_file(path)

Copy main.{path}.py file corresponding to Python build stage

deploy_function(name, timeout: int = 60, region='europe-west2')

Deploy function with required environment variables

do_app(args)

Compile front-end and deploy to App Engine

do_cron_functions(args)

Deploy background functions including cron job scheduling for update actions (run_all_playlists, run_all_playlist_stats, run_all_tags)

do_docs(args)

Compile documentation using sphinx

do_exit(args)

Exit script

do_main_group(args)

Compile front-end and deploy to App Engine. Deploy primary functions (run_user_playlist, update_tag)

do_playlist(args)

Deploy run_user_playlist function

do_playlist_cron(args)

Deploy run_all_playlists function

do_playlist_stats_cron(args)

Deploy run_all_playlist_stats function

do_prepare_local_stage(args)

Prepare local working directory for deployment using static sarsoolib injections

do_pydepend(args)

Generate and export requirements.txt from Poetry manifest

do_rename(args)

Rename playlist in firestore

do_run(args)

Run Flask app

do_sass(args)

Compile sass to css

do_set_project(args)

Set project setting in gcloud console

do_tag(args)

Deploy update_tag function

do_tags_cron(args)

Deploy run_all_tags function

do_test(args)

Run Python unit tests

do_watchsass(args)

Run sass compiler with watch argument to begin watching source folder for changes

export_filtered_dependencies()
function_deploy(main, function_id)

Deploy Cloud Function, copy main file and initiate gcloud command

Parameters
  • main (str) – main path

  • function_id (str) – function id to deploy to

intro = 'Music Tools Admin... ? for help'
locals = ['spotframework', 'fmframework', 'spotfm']
prompt = '> '
admin.docs()
admin.folders_to_ignore = ['venv', 'docs', '.git', '.idea', 'node_modules']

COMPONENTS:

  • App Engine

  • Cloud Functions:

    run_user_playlist update_tag

    run_all_playlists run_all_playlist_stats run_all_tags

admin.run()
admin.test()