태그 보관물: shell

[Shell Script] 인라인 파이썬코드로 ini 파일 파싱

Shell Script에서 python 을 이용하여 ini 파일 파싱


의도

쉘 스크립트를 이용해 /etc/systemd/system/서비스명 파일을 분석하려고 하니 스크립트에서 ini 형태의 파일을 분석하는게 조금 노가다성이라 pythonConfigParser 를 이용하면 좋겠다라는 생각이 들어 사용하였습니다.

[/etc/systemd/system/web-monitor.service] 샘플

[Unit]
Description=CHIeru Webmonitoring system.

[Service]
ExecStart=/usr/bin/node $INSTALL_PATH/server/server.js
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=web-monitor
User=root
Environment=\"NODE_CONFIG_DIR=$INSTALL_PATH/config\"

[Install]
WantedBy=multi-user.target

위의 부분에서 제가 필요한 부분은 Service 섹션의 ExecStart 값중 INSTALL_PATH 경로를 가져오는 것입니다.

[Shell Script code]

pathFromService=$(python - <<EOF
import ConfigParser
import os
Config = ConfigParser.ConfigParser()
Config.read('/etc/systemd/system/web-monitor.service')
executeCommand = Config.get('Service', 'ExecStart')
executeFilePath = executeCommand.split(' ')[1]

installationPath = os.path.abspath(os.path.dirname(executeFilePath) +'/../')

print installationPath
EOF
)
    LEN=$(echo ${#pathFromService})
    echo $pathFromService

Euckr to UTF-8

폴더 Euckr to UTF-8


문제점

자바를 처음 시작하면서 이클립스의 기본 인코딩인 Euckr를 이용하여 코딩을 하다 Linux 또는 OSX로 IDE를 변경하게 되면
UTF-8이 기본 인코딩으로 되어 한글이 깨지는 문제가 발생됨.

해결

아래의 스크립트를 이용하여 폴더(하위 폴더 포함)에 포함된 모든 자바 파일의 인코딩을 Euckr 에서 UTF-8로 변경

#!/bin/sh
# Author: 	coozplz@gmail.com
# Date	:	2015.03. 25
# Desc	: 	Convert 'Euckr encoded Java file' to 'UTF-8 encoded Java file' in specific directory.

if [ -z "$1" ]; then
	echo "[ERROR] No argument supplied, need directory path "
	exit 1
fi

echo "Convert euckr to utf8"
echo "target dir $1"

for fName in $(find $1 -name *.java -type f -print); do
	iconv -c -f euc-kr -t utf-8 $fName > $fName.tmp && mv $fName.tmp $fName
done