Publicar en una count de Twitter con el código de file .bat de Windows

Estoy intentando configurar un guión de tweets automático que se ejecuta después de un commit de git. Estoy usando Windows 7 tiene curl disponible en la línea de command.

No estoy seguro de cómo configurar las variables con los scripts de Windows del lenguaje que se ejecutan y tampoco soy optimista sobre el process oauth.

Tengo la key y el secreto de la API, y también la key del consumidor y el secreto, pero no estoy seguro de cómo envolverlo todo.

Aquí hay una mezcla recortada de papel del código que trato de usar como base:

#!/bin/sh # PATH modification needed for http_post and oauth_sign export PATH=$PATH:/usr/local/bin toplevel_path=`git rev-parse --show-toplevel` toplevel_dir=`basename "$toplevel_path"` branch=`git rev-parse --abbrev-ref HEAD` subject=`git log --pretty=format:%s -n1` hashtags="#code #$toplevel_dir" tweet=$hashtags' ['$branch']: "'$subject'"' # truncate tweets that are longer than 140 characters if [ ${#tweet} -gt 140 ] then tweet_trunc=$(echo $tweet | cut -c1-137) tweet=${tweet_trunc}... fi //set vars consumer_key="mPijnvYpD0sHAY8r*******" consumer_secret="OWuvuyQeYrT3ToJgyvNdR6baNuDldmTDF5IIJCI************" access_token="2476143012-ld78CrgnNY3kUmD0QRdvIchXeDC13nO3********" access_secret="3HTdOlf8jCVzPi5I9usV7rIbGFtM5f****************" //build oauth //post data //example curl code found during research curl --request 'POST' 'https://api.twitter.com/1.1/statuses/update.json' --header 'Authorization: OAuth oauth_consumer_key="mPijnvYpD0sHAY8r6fkox0KBj", oauth_nonce="OWuvuyQeYrT3ToJgyvNdR6baNuDldmTDF5IIJCIablQbyHA2PS", oauth_signature="Ba6IB8uH2SjtrK8a%2FgZnqCgvIKs%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1346207448", oauth_token="14814762-vvYtBOLX8hBAQ0i0f1k4wxrioG1jOk49MJrqn3myE", oauth_version="1.0"' --verbose -F "media[][email protected]" -F "status=Test from cURL" --header "Expect: " 

Cualquier ayuda en absoluto es apreciada.

Bro, en Windows deberías usar PowerShell ahora. .bat es cojo!

 $toplevel_path = git rev-parse --show-toplevel $toplevel_dir = Split-Path $toplevel_path -Leaf $branch = git rev-parse --abbrev-ref HEAD $subject = git log --pretty=format:%s -n1 $hashtags = "#code #$toplevel_dir" $tweet = '{0} [{1}]: "{2}"' -f $hashtags, $branch, $subject if ($tweet.length -gt 140) { $tweet = $tweet.substring(0,137) } $oauths = 'oauth_consumer_key="mPijnvYpD0sHAY8r6fkox0KBj"', 'oauth_nonce="OWuvuyQeYrT3ToJgyvNdR6baNuDldmTDF5IIJCIablQbyHA2PS"', 'oauth_signature="Ba6IB8uH2SjtrK8a%2FgZnqCgvIKs%3D"', 'oauth_signature_method="HMAC-SHA1"', 'oauth_timestamp="1346207448"', 'oauth_token="14814762-vvYtBOLX8hBAQ0i0f1k4wxrioG1jOk49MJrqn3myE"', 'oauth_version="1.0"' $header = 'Authorization: OAuth {0}' -f ($oauths -join ',') curl --verbose --request POST -F 'media[][email protected]' ` -F 'status=Test from cURL' --header 'Expect: ' ` --header $header https://api.twitter.com/1.1/statuses/update.json 
  • la sustitución de command es en realidad mejor que con Bash
  • PowerShell "printf" es genial
  • las matrices son geniales
  • el personaje de continuación ` es demasiado pequeño, difícil de ver