visual studio portable gratis español descargar code sass remote-access compass theming zen

sass - studio - winscp español



brújula/sass remoteing themeing a través de sftp/scp con puerto alternativo (1)

Estoy tratando de obtener brújula / sass para ver los cambios en mi computadora local y reflejar esos cambios de forma remota con un script config.rb personalizado. net::sftp funciona, pero mi servidor requiere un puerto ssh personalizado. No pude encontrar ningún mods para hacer que sftp funcione con un puerto alternativo, así que estoy tratando net:scp ahora, el problema es que no conozco la estructura de comando adecuada para subir usando net: scp y quería ver si alguien puede ayudarme. Aquí está mi código:

# Require any additional compass plugins here. require ''net/ssh'' require ''net/scp'' # SFTP Connection Details - Does not support alternate ports os SSHKeys, but could with mods remote_theme_dir_absolute = ''/home2/trinsic/public_html/scottrlarson.com/sites/all/themes/ gateway_symbology_zen/css'' sftp_host = ''xxx.xxx.xxx.xxx'' # Can be an IP sftp_user = ''user'' # SFTP Username sftp_pass = ''password'' # SFTP Password # Callback to be used when a file change is written. This will upload to a remote WP install on_stylesheet_saved do |filename| $local_path_to_css_file = css_dir + ''/'' + File.basename(filename) Net::SSH.start( sftp_host, sftp_user, {:password => sftp_pass,:port => 2222} ) do ssh.scp.upload! $local_path_to_css_file, remote_theme_dir_absolute + ''/'' + File.basename(filename) end puts ">>>> Compass is polling for changes. Press Ctrl-C to Stop" end # # This file is only needed for Compass/Sass integration. If you are not using # Compass, you may safely ignore or delete this file. # # If you''d like to learn more about Sass and Compass, see the sass/README.txt # file for more information. # # Change this to :production when ready to deploy the CSS to the live server. environment = :development #environment = :production # In development, we can turn on the FireSass-compatible debug_info. firesass = false #firesass = true # Location of the theme''s resources. css_dir = "css" sass_dir = "sass" extensions_dir = "sass-extensions" images_dir = "images" javascripts_dir = "js" # Require any additional compass plugins installed on your system. #require ''ninesixty'' #require ''zen-grids'' # Assuming this theme is in sites/*/themes/THEMENAME, you can add the partials # included with a module by uncommenting and modifying one of the lines below: #add_import_path "../../../default/modules/FOO" #add_import_path "../../../all/modules/FOO" #add_import_path "../../../../modules/FOO" ## ## You probably don''t need to edit anything below this. ## # You can select your preferred output style here (can be overridden via the command line): # output_style = :expanded or :nested or :compact or :compressed output_style = (environment == :development) ? :expanded : :compressed # To enable relative paths to assets via compass helper functions. Since Drupal # themes can be installed in multiple locations, we don''t need to worry about # the absolute path to the theme from the server root. relative_assets = true # To disable debugging comments that display the original location of your selectors. Uncomment: # line_comments = false # Pass options to sass. For development, we turn on the FireSass-compatible # debug_info if the firesass config variable above is true. sass_options = (environment == :development && firesass == true) ? {:debug_info => true} : {}

Me sale un error cuando ejecuto el comando: reloj de brújula:

NoMethodError on line ["17"] of K: undefined method `upload!'' for #<Net::SSH::Co nnection::Session:0x000000036bb220> Run with --trace to see the full backtrace


Necesitaba una solución para esto también, pero no encontré ninguna respuesta satisfactoria en ninguna parte. Después de leer la documentación de Ruby Net :: ssh y alguna fuente de Compass, esta es mi solución para cargar CSS y el mapa de origen en un servidor SSH remoto con puerto no estándar y autorización forzada de clave pública:

Primero asegúrate de tener las gemas necesarias instaladas

sudo gem install net-ssh net-sftp

luego agrega esto a tu config.rb

# Add this to the first lines of your config.rb require ''net/ssh'' require ''net/sftp'' ... # Your normal compass config comes here ... # At the end of your config.rb add the config for the upload code remote_theme_dir_absolute = ''/path/to/my/remote/stylesheets'' sftp_host = ''ssh_host'' # Can be an IP sftp_user = ''ssh_user'' # SFTP Username on_stylesheet_saved do |filename| # You can use the ssh-agent for authorisation. # In this case you can remove the :passphrase from the config and set :use_agent => true. Net::SFTP.start( sftp_host, sftp_user , :port => 10022, :keys_only => true, :keys => [''/path/to/my/private/id_rsa''], :auth_methods => [''publickey''], :passphrase => ''my_secret_passphrase'', :use_agent => false, :verbose => :warn ) do |sftp| puts sftp.upload! css_dir + ''/app.css'', remote_theme_dir_absolute + ''/'' + ''app.css'' end end on_sourcemap_saved do |filename| # You can use the ssh-agent for authorisation. # In this case you can remove the :passphrase from the config and set :use_agent true. Net::SFTP.start( sftp_host, sftp_user , :port => 10022, :keys_only => true, :keys => [''/path/to/my/private/id_rsa''], :auth_methods => [''publickey''], :passphrase => ''my_secret_passphrase'', :use_agent => false, :verbose => :warn ) do |sftp| puts sftp.upload! css_dir + ''/app.css.map'', remote_theme_dir_absolute + ''/'' + ''app.css.map'' end end

Fue todo un ensayo y error hasta que esto funcionó para mí. Algunos puntos de falla fueron:

  • Si no hay ningún agente ssh disponible, la conexión fallará hasta que establezca :ssh_agent => false explícitamente
  • Si no limita las teclas disponibles con: keys, todas las claves disponibles se intentarán una tras otra. Si usa ssh-agent y tiene más de 3 claves instaladas, los cambios son altos y el servidor remoto cerrará la conexión si prueba demasiadas claves que no son válidas para el servidor que actualmente conecta.
  • En cualquier problema de conexión, establezca el nivel de verbosidad en :verbose => :debug para ver qué está sucediendo. Recuerde detener el compass watch la compass watch y reiniciar para garantizar que se apliquen los cambios de configuración.