linuxfromscratch:auto-lfs

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
linuxfromscratch:auto-lfs [2024/05/16 09:31] – [파일 다운로드 링크 처리] baecylinuxfromscratch:auto-lfs [2024/06/07 20:14] (현재) – [파일 다운로드 링크 처리] baecy
줄 124: 줄 124:
   - alias 등록 확인   - alias 등록 확인
   - wget, git, gawk 설치 여부 확인   - wget, git, gawk 설치 여부 확인
 +
 +수정할 사항
 +  - git clone 사용 할 때 작업 디렉터리에 먼저 받고 source 디렉터리에 복사하는 방식으로 변경 필요.
  
  
줄 133: 줄 136:
 <code lang=bash> <code lang=bash>
 #!/bin/bash #!/bin/bash
-# 파일명이나 다운로드 링크를 입려가면 압축해제 후 해당 디렉토리로 이동하는 스크립트. + 
-# 입력받은 문자열이 파일 다운로드 링크인지 파일명인지 확인. +Green='\033[0;32m' 
-1. 입력받은 문자열이 "git"로 끝나면 별도 처리 +BIGreen='\033[1;32m' 
-# 2링크면 다운로드후 진행+Red='\033[0;31m' 
-2-1. 파일명이면 압축 해제하고 디렉토리 변경 시도. +Yellow='\033[0;33m' 
-# 2-2. 파일명과 디렉토리에 일관성이 없으면 가장 최근에 생성된 디렉토리로 이동 +Color_Off='\033[0m' 
-+ 
 +if [ "$(type -t p4c)!= 'alias' ] ; then 
 +        echo -e "p4c is not ${Yellow}alias registered${Color_Off}, so the functionality is not available.
 +        source ${HOME}/.bash_aliases 
 +        return 2>&/dev/null 
 +fi 
 if [ -z "$1" ]; then echo -e "${Green}An appropriate factor (file name or download link) is required.${Color_Off}"; return; fi if [ -z "$1" ]; then echo -e "${Green}An appropriate factor (file name or download link) is required.${Color_Off}"; return; fi
 InputStringType=$(echo "$1" | awk 'BEGIN { FS = ":" } ; { print $1 }') InputStringType=$(echo "$1" | awk 'BEGIN { FS = ":" } ; { print $1 }')
줄 147: 줄 156:
 GitDirCheck=$(basename -s .git "$1") GitDirCheck=$(basename -s .git "$1")
 GitCheck=${TargetFile: -3} GitCheck=${TargetFile: -3}
 +ZipCheck=${TargetFile: -3}
 +TargetDir=$(echo "$TargetFile" | sed -e 's/\.tar.*$//' -e 's/\.tgz*$//' -e 's/\.src*$//' -e 's/\.zip*$//' -e 's@^.*/@@')
 NotFoundMsg1="The directory derived from the filename is ${BIGreen}$TargetDir${Color_Off}.\n\ NotFoundMsg1="The directory derived from the filename is ${BIGreen}$TargetDir${Color_Off}.\n\
 However, it does not exist, so it will move to the ${Yellow}most recent directory created${Color_Off}.\n\ However, it does not exist, so it will move to the ${Yellow}most recent directory created${Color_Off}.\n\
 Please check if it is correct." Please check if it is correct."
-TargetDir=$(echo "$TargetFile" | sed -e 's/\.tar.*$//' -e 's/\.tgz*$//' -e 's/\.src*$//' -e 's/\.zip*$//' -e 's@^.*/@@')+ 
 +if [ $(stat -c %u $BuildBase) -ne $(id -u) ] ; then echo -e "Check ${Red}$BuildBase${Color_Off} Ownership"; return; fi
  
 function chg_dir() { function chg_dir() {
줄 161: 줄 173:
 } }
  
-이상한 것!+Change directory "$BuildBase"
 if [ "$PWD" != "$BuildBase" ]; then  if [ "$PWD" != "$BuildBase" ]; then 
         chg_dir "$BuildBase"         chg_dir "$BuildBase"
 fi fi
  
-## .git URL 처리+## Handling Git
 if [ "$GitCheck" == "git" ] ; then  if [ "$GitCheck" == "git" ] ; then 
         if [ -d "$GitdirCheck" ] ; then         if [ -d "$GitdirCheck" ] ; then
줄 172: 줄 184:
                 return                  return 
         else         else
 +            pushd $SourceBase
 +            if [ -d $GitDirCheck ] ; then
 +                rm -rf $GitDirCheck
 +            fi
             git clone "$1"             git clone "$1"
-        echo "Git #1"+            cp -R $GitDirCheck $BuildBase 
 +            popd 
 +#        echo "Git #1"
         chg_dir "$GitDirCheck"         chg_dir "$GitDirCheck"
         return         return
줄 179: 줄 197:
 fi fi
  
-# 입력이 URL이면 다운로드 
 case "$InputStringType" in case "$InputStringType" in
         https|http|ftp)         https|http|ftp)
-            wget --no-verbose --no-clobber --directory-prefix="$SourceBase" "$1"+            wget --no-verbose -nc --directory-prefix="$SourceBase" "$1"
         ;;         ;;
         *)         *)
줄 188: 줄 205:
 esac esac
  
-Zip와 다른 타르볼처리  +Prepare Package Build 
-if file "$TargetFile| grep -q 'Zip archive data'; then+if "$ZipCheck== "zip"; then
         mkdir -p "$TargetDir"         mkdir -p "$TargetDir"
         chg_dir "$TargetDir"         chg_dir "$TargetDir"
-        unzip -q "SourceBase"/"$TargetFile"+        unzip -q "$SourceBase"/"$TargetFile" 
 +        return
 else else
         if [ ! -d "$TargetDir" ]; then          if [ ! -d "$TargetDir" ]; then 
줄 200: 줄 218:
  
 fi fi
 +
 +unset  InputStringType BuildBase SourceBase TargetFile GitDirCheck GitCheck ZipCheck TargetDir NotFoundMsg1
 </code>  </code> 
  
  • linuxfromscratch/auto-lfs.1715851875.txt.gz
  • 마지막으로 수정됨: 2024/05/16 09:31
  • 저자 baecy