2017년 2월 2일 목요일

Jenkins 설정 시행착오

1. MS Word 실행 실패
System.Exception: General error: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. ---> System.NullReferenceException: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

Jenkins에서 빌드는 Windows 서비스로 실행됨
그러므로 Session0(Jenkins Builder)와 Desktop Session(MS Word)가 서로 통신 할 수 없으므로 빌드 실패
1.1 mkdir %SystemRoot%\System32\config\systemprofile\Desktop
%SystemRoot%\SysWOW64\config\systemprofile\Desktop
1.2 Jenkins Services 속성 > 로그온 > 계정 지정(T)에 윈도우 사용자 계정 설정(User Profile 항목을 설정하기 위함)
1.3 Interactive Services Detection Service 중지


2. PowerShell의 스크립트는 항상 성공적으로 종료됨
스크립트 최상단에 아래 코드를 입력하게되면 스크립트 오류 발생시 빌드 실패로 처리됨
$ErrorActionPreference = "Stop"

3. SVN log에서 텍스트 추출
[System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8
#$svnlog = [xml](svn log -r HEAD --xml)
$svnlog = [xml](& svn @('log', '-r', 'HEAD', '--xml', 'http://127.0.0.1:8080/svn/hello/trunk'))
$msg = $svnlog.log.logentry.msg
[System.Console]::OutputEncoding = [System.Text.Encoding]::Default
$reg = [regex]"(#변경사항)"
$match = $reg.Match($msg)
if ($match.Success)
{
    $msg.Substring($match.Groups[1].Index+$match.Groups[1].Length+1)
}

4. Python3.5 에서 빌드 유발 스크립트
4.1 설치
pip3 install python-jenkins
4.2 스크립트
# -*- coding: utf-8 -*-                                                                                                      
import jenkins

# 사람 > 설정 > API Toekn > Show API Token                                                                                
psToken = "e209fd54627f8dcfdf8ffe717ae3016d"
server = jenkins.Jenkins("http://127.0.0.1:8080/jenkins/", username="hkim", password=psToken)
print(server.jobs_count())
server.build_job("한글-test", {"token":"remote", "TAG_NAME":"trunk", "PARA1":"한글파라123"})

2017년 1월 25일 수요일

bcm4311 fedora25 설치

https://download1.rpmfusion.org/free/fedora/
https://download1.rpmfusion.org/nonfree/fedora/

#rpm -Uvh rpmfusion-free-release-stable.noarch.rpm
#rpm -Uvh rpmfusion-nonfree-release-stable.noarch.rpm

#dnf install broadcom-wl kmod-wl

#modprobe wl

#reboot

2016년 10월 17일 월요일

자주쓰는 SELinux 설정

ls -Z /home/

# > system-config-selinux
# > yum install policycoreutils-gui

X Window
# > semanage permissive -a xauth_t

Samba
# > chcon -t samba_share_t /dir/to/share
# > setsebool -P samba_enable_home_dirs 1
# > setsebool -P samba_export_all_rw on

2016년 5월 13일 금요일

PowerShell를 활용한 Access DB에 텍스트 데이터 가져오기

db.ps1

Set-Location $PSScriptRoot

Add-Type -TypeDefinition @'
    public enum AcTextTransferType{
        acImportDelim,
        acImportFixed,
        acExportDelim,
        acExportFixed,
        acExportMerge,
        acLinkDelim,
        acLinkFixed,
        acImportHTML,
        acExportHTML,
        acLinkHTML
    }
'@

$app = (New-Object -ComObject ACCESS.Application)
$app.OpenCurrentDatabase("k.accdb", $false, "")
#$app.Visible = $true
#도구 > 보안센터 > 보안센터설정 > 매크로설정 > 모든매크로포함
Measure-Command { $app.DoCmd.RunSQL("DELETE FROM T1") }
#IMPORT-A = 외부데이터 > 텍스트파일 > 데이터의 원본 및 대상 선택 > 텍스트 데이터 가져오기 > 고급 > 다른 이름으로 저장
Measure-Command { $app.DoCmd.TransferText([AcTextTransferType]::acImportDelim, 'IMPORT-A', "T1", ".\a.txt", $false) }
$app.CloseCurrentDatabase();

#도구 > 현재 데이터베이스 > 닫을 때 압축
#Remove-Item -Path '~k.accdb' -Force
#$app.CompactRepair('k.accdb', '~k.accdb', $false)
#Remove-Item -Path 'k.accdb' -Force
#Rename-Item -NewName 'k.accdb' -Path '~k.accdb'

$app.Quit()

Clear-Variable app

2014년 4월 23일 수요일

VHD 기본 프로그램 복구

윈도우8부터는 vhd(또는 vhdx) 파일이 더블 클릭으로 윈도우 탐색기와 마운트된다.
근데 이게 vhd를 사용 하는 7zip, xencenter 같은 프로그램을 설치하면 vhd 기본 프로그램이 변경된다.
그 뒤 vhd 기본 프로그램을 윈도우 탐색기로 변경하려고 하면 설정이 안된다.
결국 레지스트리를 수정해야 한다.

MyComputer\HKEY_CLASSES_ROOT\.vhd
에서
(default)의 내용을 "Windows.VhdFile"으로 변경한 뒤 윈도우 탐색기를 재실행하면 된다.