ruby+sourceinsight+gmake 유 닉 스 개발 환경 구축
절 차 는 대체로 이렇다.
자바 는 spider 를 써 서 hibenate 를 통 해 postgresql,maven 을 기록 하고 Maven 을 crond 에 두 었 습 니 다.인터넷 에 필요 한 데이터 가 나타 나 는 대략적인 시간 대 는 자동 으로 운행 된다.
셸 과 psql,sed 명령 으로 데이터베이스 에서 인터넷 에서 잡 은 데 이 터 를 꺼 내 data.ini 파일 에 넣 기;
c+stl 은 작은 프로그램 을 써 서 data.ini 를 씹 고 stdout 에 출력 합 니 다.
sed 명령 과 psql 로 데이터 베 이 스 를 다시 씁 니 다.
복잡 한 것 은 예전 의 많은 작은 절 차 를 종합 하여 이번 절 차 를 완 성 했 기 때문이다.
그 중에서 그 c+stl 프로그램 은 원래 vc 2005 에서 그것 을 freebsd 에 이식 한 것 이다.sourceinsight 편집 에서 스 크 립 트 언어 를 서버,gmake 에 보 낸 후 피드백 정보(컴 파일 오류 등)를 읽 고 줄 로 찾 습 니 다.
perl 을 설치 하기 시 작 했 습 니 다.반나절 동안 했 습 니 다.작은 ssh 로그 인 을 할 수 없습니다.어떤 Expect 가 지원 하지 않 는 지 등 이 있 습 니 다.
나중에 루비 를 썼어 요.직 설 적 이에 요. ,make_remote.rb:
require 'net/ssh'
require 'net/sftp'
require 'find'
local_path = "#{ARGV[1]}"
puts "local path:#{local_path}"
remote_repo = "/usr/home/zh/project"
remote_path = "#{remote_repo}/#{ARGV[0]}"
puts "remote path:#{remote_path}"
file_perm = 0600
dir_perm = 0700
def do_cmd( session ,cmd)
session.open_channel do |channel|
channel.on_data do |ch, data|
puts "#{data}"
end
channel.exec "#{cmd}",true
end
end
puts 'Connecting to remote server......'
Net::SSH.start('218.193.237.11', 'zh', '') do |ssh|
ssh.sftp.connect do |sftp|
puts 'Checking for files which need updating'
Find.find(local_path) do |file|
next if File.stat(file).directory?
local_file = "#{file}"
remote_file = remote_path + local_file.sub(local_path, '')
begin
remote_dir = File.dirname(remote_file)
sftp.stat(remote_dir)
rescue Net::SFTP::Operations::StatusException => e
raise unless e.code == 2
sftp.mkdir(remote_dir, :permissions => dir_perm)
end
begin
rstat = sftp.stat(remote_file)
rescue Net::SFTP::Operations::StatusException => e
raise unless e.code == 2
puts "Copying #{local_file} to #{remote_file}"
sftp.put_file(local_file, remote_file)
sftp.setstat(remote_file, :permissions => file_perm)
next
end
if File.stat(local_file).mtime > Time.at(rstat.mtime)
puts "Copying #{local_file} to #{remote_file}"
sftp.put_file(local_file, remote_file)
end
end
end
puts 'making project......'
shell = ssh.shell.sync
out=shell.send_command( "cd #{remote_path}&&gmake #{ARGV[2]}")
puts out.stderr
if ARGV[2]=='run'
puts out.stdout
end
puts 'Disconnecting from remote server......'
end
(비밀 번 호 를 입력 하지 않 아 도 putty 설정 을 읽 을 것 같 습 니 다?)
사용 한 것 요약:sourceinsight,셸,c++,자바,maven 2,postgres,ruby,freebsd,boost serialization
지금 이 물건 은 완전히 자동 입 니 다.웹 데 이 터 를 캡 처 하고 자동 으로 계산 합 니 다.그때 결 과 를 보면 됩 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Windows에서 CodeArtifact(Maven)용 토큰을 자동으로 생성하는 방법CodeArtifact를 사용한 적이 있거나 사용할 계획이라면 매일 모든 Maven 프로젝트에서 수동으로 토큰(CODEARTIFACT_AUTH_TOKEN)을 생성해야 합니다. 이는 어려울 수 있으며 개발 속도를 늦출...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.