{
  pkgs',
  system,
  self,
  ...
}: let
  bashFktScript = import ./bash-fkt.nix {
    inherit pkgs';
  };
  monster = pkgs'.callPackage ../packages/monster.nix {inherit pkgs' system self;};
in
  pkgs'.writeShellScriptBin "deploy" ''
    source ${pkgs'.common}/bin/common
    ${bashFktScript}

    echo_section "build and publish"
    archive=$(ls ${monster} | grep tgz)

    echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc
    if ! publishingResult=$(${pkgs'.nodejs_20}/bin/npm publish "${monster}/$archive" --json --no-git-checks --access public)
    then
      if [ -f .npmrc ] ; then rm .npmrc ; fi
      echo_fail "Failed to publish the project."
      ${pkgs'.curl}/bin/curl --header "Content-Type: application/json" --request POST \
                --data '{"text":"Failed to publish: '$(echo $publishingResult | jq .name)' '$(echo $publishingResult | jq .version)'"}' $MATTERMOST_WEBHOOK
      exit 1
    fi

    if [ -f .npmrc ] ; then rm .npmrc ; fi

    echo_hint "ID: $(echo $publishingResult | jq .id)"
    echo_hint "Name: $(echo $publishingResult | jq .name)"
    echo_hint "Version $(echo $publishingResult | jq .version)"
    echo_hint "SHA Sum: $(echo $publishingResult | jq .shasum)"
    echo_hint "Files: $(echo $publishingResult | jq .entryCount)"
set -x     
    if [ "$(echo $publishingResult | jq .id)" == null ] ; then
      echo_fail "Failed to publish the project."
      ${pkgs'.curl}/bin/curl --header "Content-Type: application/json" --request POST \
                --data '{"text":"Failed to publish: '$(echo $publishingResult | jq .name)' '$(echo $publishingResult | jq .version)'"}' $MATTERMOST_WEBHOOK
      exit 1
    fi
    
    ${pkgs'.curl}/bin/curl --header "Content-Type: application/json" --request POST \
              --data '{"text":"Deployed: '$(echo $publishingResult | jq .name)' '$(echo $publishingResult | jq .version)'"}' $MATTERMOST_WEBHOOK
    
    echo_ok "Build and publish successful."
  ''